从实体框架6.0中动态选择数据运行时抛出异常
本文关键字:选择 数据 运行时 抛出异常 动态 实体 框架 | 更新日期: 2023-09-27 18:17:37
我想从实体框架中按如下方式选择动态数据。
如果我在queryString中选择"select * from TableName",它可以正常工作,但如果我只选择选定的列/列,它不工作并抛出异常。
string queryString = @"SELECT * FROM context.TableName ";
DbSqlQuery<SampleTable> result = context.SampleTable.SqlQuery(queryString);
<<p> 抛出异常/strong> columnList是运行时从SampleTable生成的,它可以包含一个或多个列。
string queryString = @"SELECT " + String.Join(",", columnList) + " FROM context.TableName ";
DbSqlQuery<SampleTable> result = context.SampleTable.SqlQuery(queryString);
异常:数据阅读器与指定的"上下文"不兼容。表名…类型的成员,在数据读取器中没有同名的对应列。
根据我的理解EF尝试映射所有列,但上面的查询没有相同数量的列设置在代码中,所以它抛出异常。
您可以检查以下步骤:
- 在columnList中使用列的别名(例如:tablename)。Id代替Id).
- 你的columnList中的所有列名都映射到实体中。
- 检查您的columnList中的列名是否与实体的列名相同。