循环通过一个ITable LINQ.Data LINQ到SQL
我有以下代码:循环通过一个ITable LINQ.Data LINQ到SQL,linq,linq-to-sql,Linq,Linq To Sql,我有以下代码: ... string curTable = "DTMConsole.DataModels"; var s = wtcDb.GetTable(Type.GetType(curTable)); PropertyInfo[] pList = s.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var p in pList) { System.Con
...
string curTable = "DTMConsole.DataModels";
var s = wtcDb.GetTable(Type.GetType(curTable));
PropertyInfo[] pList = s.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
foreach (var p in pList)
{
System.Console.Write(p.GetValue(s, null).ToString());
}
wtcDb是一个数据上下文。DataModels是一个实体表。我正在尝试获取s中所有元素(属性)的列表。但它简单不起作用。我有两个属性。1是DataContext的名称,另一个是Bool(只读)。但是数据模型的类要广泛得多。
如何在传入参数不是强类型的情况下正确遍历ITable?您正在引用ITable的属性
var s = wtcDb.GetTable(Type.GetType(curTable));
PropertyInfo[] pList = s.ElementType.GetProperties(BindingFlags.Instance | BindingFlags.Public);
foreach (var obj in s)
{
foreach (var p in pList)
{
Console.WriteLine(p.GetValue(obj, null));
}
}
您正在引用ITable的属性
var s = wtcDb.GetTable(Type.GetType(curTable));
PropertyInfo[] pList = s.ElementType.GetProperties(BindingFlags.Instance | BindingFlags.Public);
foreach (var obj in s)
{
foreach (var p in pList)
{
Console.WriteLine(p.GetValue(obj, null));
}
}
我想补充一点。尝试迭代s变量,但它给了我一个Sqlexception。提供程序:SQL网络接口,错误:26I要添加。尝试迭代s变量,但它给了我一个Sqlexception。提供程序:SQL网络接口,错误:26Ok..以及如何引用DTMConsole.DataModels实体属性。我不需要硬编码,我需要通过传递Tablename(实体名称)来读取实体的所有值。我正在使用GetTable检索表,但由于在运行时我不知道类名,我通过curTable加载类名,并假设结果只是一个具有某些属性和方法的对象。。这就是我想要实现的。我假设datacontext的GetTable方法已经创建了我需要的DataModels实体的一个实例,并用数据填充它。@ClaudioFerraro-没错。我不明白你想要什么。看到我编辑过的帖子。我不知道为什么用你的代码我会继续得到。Sqlexception。提供程序:SQL网络接口,错误:26。。。关于foreach(s中的var obj)Ok..以及如何引用DTMConsole.DataModels实体属性。我不需要硬编码,我需要通过传递Tablename(实体名称)来读取实体的所有值。我正在使用GetTable检索表,但由于在运行时我不知道类名,我通过curTable加载类名,并假设结果只是一个具有某些属性和方法的对象。。这就是我想要实现的。我假设datacontext的GetTable方法已经创建了我需要的DataModels实体的一个实例,并用数据填充它。@ClaudioFerraro-没错。我不明白你想要什么。看到我编辑过的帖子。我不知道为什么用你的代码我会继续得到。Sqlexception。提供程序:SQL网络接口,错误:26。。。在foreach上(s中的var obj)