0

我有一个 linq 上下文,我正在查看所有数据表,我正在尝试获取所有表中的字段列表

        foreach (var code in ctx.GetType().GetProperties())
        {
            Console.WriteLine(code.PropertyType + " - " + code.Name + " ");
            if (code.PropertyType.ToString().Contains("System.Data.Linq.Table"))
            {
                  //this does not give me what i want here
                  foreach (var pi in code.PropertyType.GetType().GetProperties())
                  {
                   Console.WriteLine(pi.Name);
                  }
            }
        }

这并没有为我提供每个表中的列。

有什么想法吗?

简单地说,当我所拥有的只是我要为其获取属性的对象的 propertyInfo 时,我正在尝试获取所有属性。

-飓风

4

1 回答 1

1
foreach (var code in ctx.GetType().GetProperties())
        {
            Console.WriteLine(code.PropertyType + " - " + code.Name + " ");
            if (code.PropertyType.ToString().Contains("System.Data.Linq.Table"))
            {
                  //this does not give me what i want here
                  foreach (var pi in code.PropertyType.GetGenericArguments()[0].GetProperties())
                  {
                   Console.WriteLine(pi.Name);
                  }
            }
        }

改成这样。您正在反映 System.Data.Linq.Table,但请记住,DataContext 上的属性是 Table<T>,其中 T 是表示数据库中实际表的类。因此,您需要对 T 进行反思。

于 2009-06-12T16:30:50.353 回答