Pawan Nogariya Pawan Nogariya - 2 months ago 19
MySQL Question

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.

Answer

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);