无法更新EntitySet ?

  • 回答 (2)
  • 关注 (0)
  • 查看 (61)

无法更新EntitySet ,因为它有一个DefiningQuery并且不存在<UpdateFunction>元素?

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

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

var RoomDetails = context.Rooms.ToList();
foreach (var Room in Rooms)
{        
   Room.LastUpdated = DateTime.Now;
}

我正在尝试执行时遇到此错误:

 context.SaveChanges();

我得到的错误:

无法更新EntitySet - 因为它具有DefiningQuery,并且<ModificationFunctionMapping>元素中不存在<UpdateFunction>元素以支持当前操作。

我在上下文中做了很多更新,没有任何问题,只是当我试图更新这个特定的实体。

我所有的搜索都显示了同样的事情,即在我试图更新的实体上没有声明主键。但是,唉,我确实有一个主键声明...

六个六六个六提问于
akjok54stay hungry stay foolish回答于

只需将一个主键添加到表中。而已。问题解决了。

ALTER TABLE <TABLE_NAME>
ADD CONSTRAINT <CONSTRAINT_NAME> PRIMARY KEY(<COLUMN_NAME>)
嗨喽你好摩羯座回答于

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

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

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

扫码关注云+社区

领取腾讯云代金券