更新实体框架中的EntityKey参考

时间:2009-07-24 16:57:43

标签: entity-framework workflow-foundation entity-relationship

我创建了一个使用Asp.net,Entity Framework和Windows Workflow Foundation的应用程序,一切都按预期工作。

我的asp.net页面应该启动一个工作流程,用于执行和更新从页面传递到工作流程的实体。一切正常:我使用工作单元模式来共享asp.net和WWF之间的上下文,我的实体在工作流程中成功更新...除了在我的实体中建模的字段作为对另一个实体的引用。

假设这种情况。主实体称为Item,它具有名为Status的属性,该属性是另一个名为Status的实体的外键。当我创建一个Item时,我只是使用像

这样的通用语法创建它
Item i = new Item();

然后我创建对Status实体的引用,如下所示:

i.StatusReference.EntityKey = new System.Data.EntityKey("myEntities.StatusSet", "idStatus", State);

其中State是工作流步骤中硬编码的整数值。

每当我尝试更新此实体(第一项)时,我都按照以下步骤操作: a)我从上下文中检索实体(一个新的实体,使用以下事务构建为工作单元):

Item i = (from item in ctx.ItemsSet where item.idItem == itemID select item).FirstOrDefault();

然后将实体附加到我的上下文中。 EntityState位于UNCHANGED

b)我像以前一样更新状态参考:

i.StatusReference.EntityKey = new System.Data.EntityKey("myEntities.StatusSet", "idStatus", State);

c)我保存对上下文的更改,例如: ctx.SaveChanges();

使用vs2008调试器我可以看到更新后的实体以及保存更改时......我看到所有属性都已更改(modifiedDate,itemName和其他道具),但实体引用仍然指向原始属性。

有人能给我一些帮助吗?!

0 个答案:

没有答案
相关问题