我正在使用SQLite CodeFires EF 6.1.3。一切正常,但我想使用反向属性。
我有2个班级:
public sealed class Page
{
....
[InverseProperty("PageOfThisKey")]
public ICollection<Keys> KeysOfThisPage { get; set; }
...
}
和类密钥:
public sealed class Key
{
...
public Int32 PageID { get; set; }
[ForeignKey("PageID")]
public Page PageOfThisKey { get; set; }
...
}
所以我想要做的是获取一个Page的实例,并在属性中获取所有密钥专用于此页面。所以说 - 像这样:
var db = ConnectionManager.GetContext();
var keys = db.Pages.First().KeysOfThisPage;
但'keys'变量始终为null。
我首先使用代码,然后使用SQLite代码第一个解决方案https://github.com/msallin/SQLiteCodeFirst
有人可以看一下如何解决这个问题?
答案 0 :(得分:1)
你应该使用&#34;虚拟&#34;用于启用延迟加载的关键字,如下所示:
public class Page
{
....
[InverseProperty("PageOfThisKey")]
public virtual ICollection<Keys> KeysOfThisPage { get; set; }
...
}
public class Key
{
...
public Int32 PageID { get; set; }
[ForeignKey("PageID")]
[InverseProperty("KeysOfThisPage")]
public virtual Page PageOfThisKey { get; set; }
...
}
或者您可以使用&#34; include&#34;在linq查询。
var keys = db.Pages.Include("KeysOfThisPage").First().KeysOfThisPage;
有关详细信息,请参阅此link