【发布时间】:2014-08-12 00:49:54
【问题描述】:
我想从实体框架中选择动态数据,如下所示。
如果我在 queryString 中选择“Select * from TableName”,它工作正常,但如果我只选择选定的列/列,它就不起作用并引发异常。
工作正常
string queryString = @"SELECT * FROM context.TableName ";
DbSqlQuery<SampleTable> result = context.SampleTable.SqlQuery(queryString);
抛出异常
columnList 是从 SampleTable 生成的运行时间,它可能包含一列或多列。
string queryString = @"SELECT " + String.Join(",", columnList) + " FROM context.TableName ";
DbSqlQuery<SampleTable> result = context.SampleTable.SqlQuery(queryString);
例外:
数据读取器与指定的'context.TableName ...类型的成员不兼容,在数据读取器中没有对应的同名列。
据我了解,EF 尝试映射所有列,但上述查询的列数与代码中设置的列数不同,因此会引发异常。
【问题讨论】:
-
您的意思是“例外”,而不是“预期”。
标签: c# wpf entity-framework