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

标签 c# asp.net .net entity-framework primary-key

我在 .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/

相关文章:

c# - 将 JObject 转换为 Dictionary<string, object>。可能吗?

c# - Win10 UWP、Prism/Unity 和单元测试以及类库、静默失败

asp.net - ServiceStack 请求对象的属性包含破折号?

c# - 可变长度的可重用缓冲区

c# - 如何使用 Entity Framework `ValueComparer<T>` ?

c# - 在 HTML 页面 <%# %> 标签内使用 If Else

c# - 在哪里存储可以在运行时修改的应用程序范围的设置?

c# - Mono 上的 SignalR 和 Websockets

c# - 带有 IIS 的 Crystal 报表

c# - 如何释放 BitMap 类持有的文件