我有以下课程:
INSERT INTO tbl (file_id, data) SELECT file_id, data FROM tbl
和代码:
public class A
{
[Key]
public virtual int ID { get; set; } //virtual here raises error!
public virtual B B { get; set; }
}
public class B
{
[Key]
public int ID { get; set; }
[Required]
public string title { get; set; }
}
如果我从A类的属性ID中删除“virtual”,一切正常。我需要属性virtual才能在nhibernate中使用该模型。
感谢
答案 0 :(得分:1)
我能够重现它,显然它是EF6的错误。
我可以建议2个解决方法。要么(1)也要所有 B
成员virtual
,要么(2)急切加载(懒惰和显式加载不会work)编辑之前的导航属性。
即。而不是
var a = dbSet.Find(1); // doesn't work
使用
var a = dbSet.Include(e => e.B).First(e => e.ID == 1); // works