相关疑难解决方法(0)

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

我正在使用.net 3.5的Entity Framework 1.

我做的事情很简单:

var RoomDetails = context.Rooms.ToList();

foreach (var Room in Rooms)
{        
   Room.LastUpdated = DateTime.Now;
}
Run Code Online (Sandbox Code Playgroud)

我尝试这样做时收到此错误:

 context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我收到错误:

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

我正在对上下文进行大量更新而没有任何问题,只有当我尝试更新此特定实体时才会这样做.

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

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

517
推荐指数
9
解决办法
29万
查看次数

365
推荐指数
7
解决办法
66万
查看次数

删除与基于视图的实体的1对多关联的实体对象

我有一个Model-First实体模型,它包含一个链接到视图的Customer表,该视图从单独的数据库中获取客户详细信息.Customer表和View之间的关系是一对多,我在Customer实体和View实体上都有一个导航属性.

当我尝试使用context.Customers.DeleteObject(cust)执行删除并调用context.SaveChanges()时出现错误:

无法更新EntitySet的'ViewEntity',因为它具有DefiningQuery并且没有[DeleteFunction]元素存在元素来支持当前操作.


我尝试过设置On Delete Cascade和None,两者都生成相同的错误.

编辑:没有太多的代码可以展示,但是你去了:

Customer selectedCust = (Customer)dgvCustomers.SelectedRows[0].DataBoundItem;
if (selectedCust != null)
{
    if (MessageBox.Show(String.Format("Are you sure you want to delete Customer {0}?", selectedCust.CustomerID.ToString()), 
                            "Customer Delete Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
        // TODO - Fix this
        this.ReportSchedDBContext.Customers.DeleteObject(selectedCust);
        this.ReportSchedDBContext.SaveChanges();                      
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework entity-framework-4

8
推荐指数
1
解决办法
244
查看次数