我使用EF 6.0和代码优先方法。
我是一个主要实体," Person"使用参考属性"地址"。
当我执行这样的代码时:
Person.Address = new Address();
var state = dbContenxt.Entry(Person).State
状态变量是未修改的。
这是由于代码第一种方法吗? 如果我首先使用与db相同的代码,那么一切正常并且状态变量结果符合预期,即修改。
答案 0 :(得分:0)
我自己回答了我的问题。 我已经重新解释了这个问题:
Person Entity:
Id
Name
Address (Address is navigation property)
--------------
Address Entity:
Id
Location
Person (Person is a navigation property)
相反,如果通过右键单击Address类添加关联,则Visual Studio将显示模式窗口,默认情况下,将在您的实体上添加外键。顺便说说, 您的实体状态将导致修改。
Person Entity:
Id
Name
Address_Id -> Foreign Key, all changes will be properly tracked.
Address (Address is navigation property)
--------------
Address Entity:
Id
Location
Person (Person is a navigation property)
但是,这两个程序都将保存所有更改。