我正在使用Entity Framework1和.net 3.5。
我正在做一些简单的事情,像这样:
var roomDetails = context.Rooms.ToList();
foreach (var room in roomDetails)
{
room.LastUpdated = DateTime.Now;
}
当我尝试这样做时,我得到了这个错误:
context.SaveChanges();
我得到了错误:
无法更新EntitySet -因为它具有DefiningQuery,并且元素中不存在支持当前操作的元素。
我在上下文上做了很多更新,没有任何问题,只有当我试图更新这个特定的实体时才会这样做。
我的所有搜索结果都是一样的,那就是在我试图更新的实体上没有声明主键。但是,我确实声明了一个主键...
发布于 2011-09-28 21:11:21
这种情况通常是由以下原因之一造成的:
从数据库视图映射
这样做之后,您可能仍然需要在实体框架设计器中进行更新(或者删除实体,然后添加它),然后才能停止获取错误。
发布于 2013-03-28 17:20:21
只需向表中添加一个主键即可。就这样。问题解决了。
ALTER TABLE <TABLE_NAME>
ADD CONSTRAINT <CONSTRAINT_NAME> PRIMARY KEY(<COLUMN_NAME>)
发布于 2015-01-21 15:20:49
这就是我的情况。简单地删除会导致另一个错误。除了最后一篇之外,我遵循了这篇文章的步骤。为了您的方便,我从我遵循的帖子中复制了4个步骤来解决这个问题,如下所示:
store:Schema="dbo"
to Schema="dbo"
(否则,代码将生成错误,说明名称无效)< code >G211https://stackoverflow.com/questions/7583770
复制相似问题