我在 .net 3.5 中使用 Entity Framework 1。
我正在做这样简单的事情:
var roomDetails = context.Rooms.ToList();
foreach (var room in roomDetails)
{
room.LastUpdated = DateTime.Now;
}
当我尝试这样做时出现此错误:
context.SaveChanges();
我得到错误:
Unable to update the EntitySet - because it has a DefiningQuery and no <UpdateFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.
我正在对上下文进行大量更新并且没有任何问题,只有当我尝试更新这个特定实体时才会出现这种情况。
我所有的搜索都显示相同的东西,即没有在我尝试更新的实体上声明主键。但是,唉,我确实声明了一个主键...
最佳答案
它通常是由于以下原因之一而发生的:
- 从数据库 View 映射实体集
- 自定义数据库查询
- 数据库表没有主键
执行此操作后,您可能仍需要在 Entity Framework 设计器中进行更新(或者删除实体然后添加它),然后才能停止收到错误。
关于c# - 无法更新 EntitySet - 因为它有一个 DefiningQuery 并且不存在 <UpdateFunction> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583770/