实体框架:手动设置实体状态恢复值

时间:2012-12-14 18:52:12

标签: c# asp.net .net entity-framework

我以断开连接的方式使用EF5。我有一个名为Cases的主表,其中包含用于定义关联的各种事物的查找表。例如,列SOURCE_IDSources表关联,其中该表包含查找。

Cases的实体中,我有Source_ID列以及名为Source的关联和导航属性,以导航到关联的表。

由于我以断开连接的方式使用东西,当我想保存实体时,我手动将状态从Added设置为Modified。这很有效(遵循Julie Lermon的书中的一些例子)。

但是,如果我将SOURCE_ID列更改为其他值并且相关表已加载实体,那么当我将状态更改为MODIFIED时,SOURCE_ID恢复原来的价值,大概是因为这种关联。

我正在加载关联的SOURCES表,因为我想显示该表中的其他内容,但我只是想更改SOURCE_ID并保存它。似乎不喜欢那样。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

需要更多代码,但我会一拍。

不要只更新SOURCE_ID,而是尝试更新对Sources查找的引用。

所以不是......

Case.Source.ID = 1;

...也许

Case.Source = db.Sources.Where(x => x.SOURCE_ID == 1).FirstOrDefault();

(编辑:哦,这是一个月前被问到的?哎呀。好吧,还是。)