小编典典

无法更新 EntitySet - 因为它有一个 DefiningQuery 并且没有元素存在

all

我正在使用带有 .net 3.5 的实体框架 1。

我正在做这样简单的事情:

var roomDetails = context.Rooms.ToList();

foreach (var room in roomDetails)
{        
   room.LastUpdated = DateTime.Now;
}

当我尝试这样做时出现此错误:

 context.SaveChanges();

我得到错误:

无法更新 EntitySet - 因为它有一个 DefiningQuery 并且
元素中不存在 元素来支持当前操作。

我正在对上下文进行大量更新并且没有任何问题,只有当我尝试更新这个特定实体时。

我的所有搜索都显示相同的内容,即我尝试更新的实体上没有声明主键。但是,唉,我确实声明了一个主键......


阅读 101

收藏
2022-03-08

共1个答案

小编典典

这通常是由于以下原因之一:

  • 实体集是从数据库视图映射的
  • 自定义数据库查询
  • 数据库表没有主键

执行此操作后,您可能仍需要在实体框架设计器中进行更新(或者删除实体然后添加它),然后才能停止收到错误。

2022-03-08