簡體   English   中英

從實體框架6.0動態選擇數據運行時會引發異常

[英]Dynamically select data runtime from entity framework 6.0 throws exception

我想按如下方法從實體框架中選擇動態數據。

如果我在queryString中選擇“從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嘗試映射所有列,但是上面的查詢沒有與代碼中設置的列數相同,因此會引發異常。

您可以檢查以下步驟:

  • 使用columnList中列的別名(例如:tablename.Id而不是Id)。
  • 將columnList中的所有列名都映射到Entity中。
  • 檢查columnList中的列名是否與Entity的列名相同。

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM