Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I am trying to delete multiple rows from the table using linq's ExecuteStoreQuery method like this

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

but it is throwing this exception

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

What am I doing wrong?

Just for the information, I am using MySql.

like image 907
Pawan Nogariya Avatar asked Jan 25 '13 11:01

Pawan Nogariya


1 Answers

Given that you're executing a delete command (not a query), I think you should be using ExecuteStoreCommand instead of ExecuteStoreQuery.

Additionally, you should definitely be using parameters instead of putting the ID directly into the command.

string command = "delete from IMPORTStatistics where districtid={0}";
int rowsDeleted = db.ExecuteStoreCommand(command, districtId);
like image 115
Jon Skeet Avatar answered Sep 22 '22 01:09

Jon Skeet