从实体框架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尝试映射所有列,但上面的查询没有相同数量的列设置在代码中,所以它抛出异常。

从实体框架6.0中动态选择数据运行时抛出异常

您可以检查以下步骤:

  • 在columnList中使用列的别名(例如:tablename)。Id代替Id).
  • 你的columnList中的所有列名都映射到实体中。
  • 检查您的columnList中的列名是否与实体的列名相同。