一尘不染

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

c#

我正在将Entity Framework 1与.net 3.5配合使用。

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

var roomDetails = context.Rooms.ToList();

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

我尝试执行此操作时遇到此错误:

 context.SaveChanges();

我得到错误:

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

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

我所有的搜索都显示相同的内容,即我要更新的实体上没有声明主键。但是a,我确实声明了主键…


阅读 296

收藏
2020-05-19

共1个答案

一尘不染

通常由于以下原因之一而发生:

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

这样做之后,您可能仍需要在停止获取错误之前在Entity Framework设计器中进行更新(或删除该实体然后添加它)。

2020-05-19