将控制器中的模型值与数据库值进行比较

时间:2014-02-19 17:50:55

标签: c# asp.net-mvc linq-to-sql linq-to-entities

我正在尝试在我的控制器的POST中更新我的模型:

我在这里从数据库中获取原始值:

var origAttributes = (from tAttr in db.TeacherAttrs where tAttr.ID == ta.ID select tAttr);

我的ViewModel中有一个属性db.TeacherAttr

  

属性名称:ta.DMTeacherAttr

我想知道有没有办法比较我的模型(ta.DMTeacherAttr)与数据库中的内容之间的值?

我也在使用Entity Framework 5.

2 个答案:

答案 0 :(得分:1)

你试过这个:

var origTeacherAttr = db.TeacherAttrs.Find(ta.ID);

if(origTeacherAttr.DMTeacherAttr==ta.DMTeacherAttr)
{
//Do something
}

答案 1 :(得分:0)

如果比较的目的是查看确切需要更新的字段,那么Entity Framework将为您完成,您需要做两件事:

  1. 将ViewModel映射到模型
  2. 将所有模型属性设置为虚拟
  3. 实体框架将使用代理包装您的类,并将跟踪其属性。