LINQ to SQL - CheckedListBox
本文关键字:CheckedListBox SQL to LINQ | 更新日期: 2023-09-27 18:10:48
我有一个DataContext (Linq to Sql),大约有47个表。我试图获得所有47个表的列表,并将它们打印到TabControl"表"下的checklistbox ?当用户检查与"Tables"TabControl下的CheckedListBox关联的任意数量的表名时—我希望所有与"Tables"TabControl上的CheckedListBox相关联的列名都打印在TabControl"列"。有人能帮忙吗?谢谢。
PropertyInfo[] properties = typeof(MyDataContext).GetProperties();
foreach (PropertyInfo property in properties)
{
if(property.PropertyType.IsGenericType)
{
object[] attribs = property.PropertyType.GetGenericArguments()[0].GetCustomAttributes(typeof(TableAttribute), false);
if(attribs.Length > 0)
{
Console.WriteLine(property.Name);
}
}
}
我能想到的一个解决方案是使用反射来读取上下文类的所有属性。然后再次使用属性读取所选检查表的属性以获取列名。这是你开始的一个指针
var tables = typeof(YourDataContextClassName).GetProperties(); // This will return you all public properties, use overloaded methods to get your desired properties
// You have all tables now, get their name and then against each table, use the same technique to get their fields.