实体框架和数据模型中的更新查询出错

时间:2018-01-03 17:53:38

标签: c# entity-framework

database.Database.SqlQuery<zamenin>("update zamenin set shomaremoshtarevamgirande ='" + txt_customnum.Text.Trim() + "' where shomaremoshtarevamgirande='" + shomaremoshtare + "'").ToList();
database.SaveChanges();

当我运行此代码时,我收到此错误:

  

数据读取器与指定的'moavaghatModel.zamenin'不兼容。类型为“ID”的成员在数据读取器中没有相应的具有相同名称的列。

请帮帮我

1 个答案:

答案 0 :(得分:0)

SqlQuery<zamenin>()期望查询返回包含与zamenin类型匹配的行的数据集。但是,您正在运行不返回数据的更新语句。

要运行更新语句,您应该这样做:

database.Database.ExecuteSqlCommand("update zamenin set shomaremoshtarevamgirande ='" + txt_customnum.Text.Trim() + "' where shomaremoshtarevamgirande='" + shomaremoshtare + "'")

更安全的方法是使用如下参数化查询:

database.Database.ExecuteSqlCommand("update zamenin set shomaremoshtarevamgirande = {0} where shomaremoshtarevamgirande= {1}", txt_customnum.Text.Trim(), shomaremoshtare);

您也无需致电SaveChanges(),因为ExecuteSqlCommand()会立即开通。