Bunu yapmanın bir yolunu buldum, ancak bu kodu kullanıp kullanmadığımı bilmiyorum. ileterek
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);
}
}
Sonra GetWhatIWant yöntemini sizin DataHelper bir örneğini oluşturabilir ve arayabilirsiniz:
PrimaryTable
ID,
FirstValue,
SecondValue
SecondaryTable
ID,
FirstSecondaryValue
Aşağıdaki DataHelper sınıfını kullanabilirsiniz: Eğer iki tablo içeren bir DataContext'i varsa Tablo ismi. dönmek Eğer Jenerik Yöntem ve db.Set<T>
kullanabilirsiniz LINQ to SQL
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();
dayanarak 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/Forums/eu/linqprojectgeneral/konu/d9ffe9a1-59c3-4776-900a-4b45e0b4abcf http://stackoverflow.com/questi ons/7800770/how-can-you-dinamik olarak-bir-tablo-ile-varlık-çerçeve-4-x http://www.west-wind.com/weblog/posts/2007/Aug/13/LINQ -to-SQL-ve-Dinamik-Sorgular-ve-İfadeler –
Bu bağlantıları aramak için çalışacağız. Faydalı bir şey bulursam size haber vereceğim. – benVG
iyi şanslar, senin için çok kolay olacak sanırım! –