【发布时间】:2011-10-27 16:59:02
【问题描述】:
我在使用实体框架 (EF4.1 - CodeFirst) 时遇到问题
它基本上是在复制子对象...
对象模型是一个 Job 中的多个 Task -> Task 有一个 TaskType 并且 TaskType 有多个 Statuses ...
起初它是在保存时复制 TaskTypes
但是,在我添加它之后,它停止复制 TaskTypes ...
context.Entry(task.TaskType).State = EntityState.Unchanged;
所以我尝试了这个状态...
//tried this but it errors
foreach (var status in task.TaskType.Statuses)
{
context.Entry(status).State = EntityState.Unchanged;
}
////
但它与以下错误...
“存储更新、插入或删除语句影响了意外数量的行 (0)。实体可能在加载实体后已被修改或删除。刷新 ObjectStateManager 条目。”
这里是完整的代码......(为了便于阅读,一些 get 代码被删减了)
using(var context = new JobContext())
{
var job = //Get with Includes;
job.Tasks.Add(task);
context.Jobs.Attach(job);
context.Entry(task.TaskType).State = EntityState.Unchanged;
//tried this but it errors
foreach (var status in task.TaskType.Statuses)
{
context.Entry(status).State = EntityState.Unchanged;
}
////
context.SaveChanges();
}
有人可以帮忙吗?
【问题讨论】:
标签: entity-framework entity-framework-4 ef-code-first