LinqPad无法返回正确的表类型

时间:2014-09-22 19:02:38

标签: c# asp.net linq linqpad

我使用LinqPad连接到sql server。有一个标准的数据库Northwind与表Product。我需要动态获取表属性信息(从客户端控制台输入读取表名)。不幸的是,LinqPad隐藏了表真实的类型。无论我如何尝试,它总是对我无效。

请注意,这个问题与其他人不一样。我需要将表属性与用户输入表名称相关联,如“Products”。挑战部分是我不需要获取字符串“LINQPad.User.Products”属性,但我确实需要获取表LINQPad.User.Products属性。问题Get properties and values from unknown object的答案 无法解决我的问题。实际上我的问题与答案相同,只是代码格式不同。

var propertyInfo = (Type.GetType(fullTableName)).GetProperties();

var tableName = Console.ReadLine();
string fullTableName =  "LINQPad.User." + tableName;
var propertyInfo = (Type.GetType(fullTableName)).GetProperties();

2 个答案:

答案 0 :(得分:2)

要获取属性,您可以使用以下内容......

void Main()
{
    string tableName = Console.ReadLine();

    Type.GetType("UserQuery").GetProperty(tableName)
                             .PropertyType
                             .GenericTypeArguments
                             .First()
                             .GetProperties()
                             .Dump("The properties of the " + tableName + " table");

}

答案 1 :(得分:1)

你应该能够这样做:

this.GetType().GetProperty("Products").PropertyType.GetProperties().Dump();

要进行测试,您可以将其与以下内容进行比较:

Products.GetType().GetProperties().Dump();

你得到的结果相同。