实体框架6新记录未解析外国实体

时间:2013-11-26 18:56:15

标签: entity-framework ef-code-first entity-framework-6

自从首先从EF 4数据库(.edmx)升级到EF 6代码后,我遇到了一些代码问题。

我有一个名为Test的表,还有一个名为Student的表。每个学生都可以进行多次测试,并且表格已加入(studentId是“学生”中的主键,而“测试”中是外键)。

如果我在代码中创建一个新的测试,然后将其添加到数据库,那一切都正常。问题是当我尝试读取EF生成的学生属性时。

var test = new test { studentId = 4, testName = "My Test", result = "B" };
db.Tests.Add(test);
db.SaveChanges();

var studentName = test.Student.Name;  // this gives an error - Student is null!

在Entity Framework 4下,我可以像上面一样添加一行,然后一旦我保存了更改,外部对象就会可用。

EF 6中有任何变化吗?唯一的另一个变化是MARS也被禁用了。这可能与此有关吗?

这是该项目的一个普遍问题,但我希望这是我可以轻松解决的问题。

1 个答案:

答案 0 :(得分:1)

实体类实例属于实体类型test,而不是处理延迟加载的代理,因此导航属性不会延迟加载。

更新:尝试以下操作来创建实体对象w / proxy

var test = db.Tests.Create();