使用Linq查询访问数据库

时间:2013-11-19 03:35:55

标签: c# linq entity-framework asp.net-mvc-4

我正在使用Entity框架学习MVC4。今天我弄清楚如何更新联结表,现在我对linq的使用有点困惑。通常我会用以下语句更新我的数据库。

db.Entity.Add(EntityViewModel);
               db.SaveChanges();

但是当我更新联结表时

 Entity EntityAttached = db.Entity.Where(x=> x.Id ==   EntityViewModle.Id).First();
   EntityViewModle.anotherEntities = EntityAttached.anotherEntities;
   EntityViewModle.anotherEntities.Clear(); EntityViewModle.anotherEntities.Add(anotherEntity);

db.Entry(EntityAttached).CurrentValues.SetValues(EntityViewModle);
db.SaveChanges();

它运行正常,但我并没有真正得到db.Entry()。CurrentValues.SetValues()部分。请解释我为什么我不能使用.add()并保存。或者无论如何直接将数据输入到联结表?或者更简单的方式,而不是上面描述的?

1 个答案:

答案 0 :(得分:0)

看起来此代码更新了现有实体。如果您使用Add,那么您将从数据库中获取新ID。