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(TableA‌​ttribute), false); 
        if(attribs.Length > 0)
        { 
            Console.WriteLine(property.Name); 
        }
    }
}

LINQ to SQL - CheckedListBox

我能想到的一个解决方案是使用反射来读取上下文类的所有属性。然后再次使用属性读取所选检查表的属性以获取列名。这是你开始的一个指针

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.