Tôi đã tìm được cách để làm điều đó, nhưng tôi không chắc liệu tôi có sử dụng mã này hay không. Nếu bạn có một DataContext có chứa hai bảng:
PrimaryTable
ID,
FirstValue,
SecondValue
SecondaryTable
ID,
FirstSecondaryValue
Bạn có thể sử dụng DataHelper lớp sau:
class DataHelper
{
public MyDatabaseDataContext db = new MyDatabaseDataContext();
List<dynamic> GetDynamicList<T>() where T : class
{
System.Data.Linq.Table<T> table = db.GetTable<T>();
var result = from a in table select a;
return result.ToList<dynamic>();
}
public List<dynamic> GetWhatIWant(string tableName)
{
Type myClass = Type.GetType("DynamicLinqToSql." + tableName);
MethodInfo method = typeof(DataHelper).GetMethod("GetDynamicList", BindingFlags.NonPublic | BindingFlags.Instance);
method = method.MakeGenericMethod(myClass);
return (List<dynamic>)method.Invoke(this, null);
}
}
Sau đó, bạn có thể tạo một thể hiện của DataHelper của bạn và gọi phương thức GetWhatIWant, đi qua trong tên bảng.
var dataHelper = new DataHelper();
List<dynamic> myFirstList = dataHelper.GetWhatIWant("PrimaryTable");
for (int i = 0; i < 5 && i < myFirstList.Count; i++)
{
System.Console.WriteLine(String.Format("{0} - {1}", myFirstList[i].FirstValue.ToString(), myFirstList[i].SecondValue.ToString()));
}
List<dynamic> mySecondList = dataHelper.GetWhatIWant("SecondaryTable");
for (int i = 0; i < 5 && i < mySecondList.Count; i++)
{
System.Console.WriteLine(mySecondList[i].FirstSecondaryValue.ToString());
}
System.Console.ReadKey();
Bạn có thể refere những bài viết này và câu trả lời: http: //weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx http://social.msdn.microsoft.com/Diễn đàn/eu/linqprojectgeneral/thread/d9ffe9a1-59c3-4776-900a-4b45e0b4abcf http://stackoverflow.com/questi tiện ích/7800770/how-can-you-dynamic-select-a-table-với-entity-framework-4-x http://www.west-wind.com/weblog/posts/2007/Aug/13/LINQ -to-SQL-và-Động-Truy vấn-và-Biểu thức –
Tôi sẽ cố gắng tìm kiếm tại các liên kết đó. Tôi sẽ cho bạn biết nếu tôi tìm thấy một cái gì đó hữu ích. – benVG
chúc may mắn, nó sẽ rất dễ dàng cho bạn, tôi nghĩ! –