数据阅读器有多个字段。多个字段对EDM基元类型无效

时间:2013-01-25 11:13:25

标签: mysql linq executestorequery

我正在尝试使用linq的ExecuteStoreQuery方法从表中删除多行

 string query = "delete from IMPORTStatistics where districtid='" + districtId + "'";
 db.ExecuteStoreQuery<int>(query);

但它正在抛出此异常

"The data reader has more than one field. Multiple fields are not valid for EDM primitive types."

我做错了什么?

仅供参考,我使用的是MySql。

2 个答案:

答案 0 :(得分:10)

鉴于您正在执行删除命令(而不是查询),我认为您应该使用ExecuteStoreCommand而不是ExecuteStoreQuery

此外,你应该肯定使用参数而不是直接将ID放入命令。

string command = "delete from IMPORTStatistics where districtid={0}";
int rowsDeleted = db.ExecuteStoreCommand(command, districtId);

答案 1 :(得分:0)

在我发现这个

之后,这是非常有用的链接

http://welcometoaspdotnet.blogspot.com/2012/08/execute-stored-procedure-with-entity.html

THX