我以断开连接的方式使用EF5。我有一个名为Cases
的主表,其中包含用于定义关联的各种事物的查找表。例如,列SOURCE_ID
与Sources
表关联,其中该表包含查找。
在Cases
的实体中,我有Source_ID列以及名为Source
的关联和导航属性,以导航到关联的表。
由于我以断开连接的方式使用东西,当我想保存实体时,我手动将状态从Added
设置为Modified
。这很有效(遵循Julie Lermon的书中的一些例子)。
但是,如果我将SOURCE_ID
列更改为其他值并且相关表已加载实体,那么当我将状态更改为MODIFIED
时,SOURCE_ID
恢复原来的价值,大概是因为这种关联。
我正在加载关联的SOURCES
表,因为我想显示该表中的其他内容,但我只是想更改SOURCE_ID
并保存它。似乎不喜欢那样。
有什么想法吗?
答案 0 :(得分:0)
需要更多代码,但我会一拍。
不要只更新SOURCE_ID,而是尝试更新对Sources查找的引用。
所以不是......
Case.Source.ID = 1;
...也许
Case.Source = db.Sources.Where(x => x.SOURCE_ID == 1).FirstOrDefault();
(编辑:哦,这是一个月前被问到的?哎呀。好吧,还是。)