我已经设置了 3 个模型,首先是代码,并且关系似乎正常,但是一个给我带来了问题。
我有文章、语言和版本课程
public class Article
{
public int ID { get; set; }
public string Name { get; set; }
public string Icon { get; set; }
}
public class Language
{
public int ID { get; set; }
public string Name { get; set; }
public string Code { get; set; }
}
public class Edition
{
public int ID { get; set; }
public Article Article { get; set; }
public Language Language { get; set; }
public string Title { get; set; }
public string Details { get; set; }
}
在我的引导程序/DBinitialiser 中,我可以创建对象并很好地填充它们。数据库已创建,Language 和 Article 的外键都出现在 Edition 表中并正确输入。
var engLang = new Language() {Code="en", Name="English Language"};
var altLang = new Language() {Code="xx", Name="Alternative Language"};
db.Languages.Add(engLang);
db.Languages.Add(altLang);
db.SaveChanges();
var testArt = new Article() { Name = "test" };
db.Articles.Add(testArt);
db.SaveChanges();
db.Editions.Add(new Edition(){Article = testArt, Language = engLang, Title="English Content"});
db.Editions.Add(new Edition(){Article = testArt, Language = altLang, Title="Alternative Content"});
db.SaveChanges();
我现在可以查询版本并返回它们的列表,但语言属性始终为 NULL。文章属性工作正常。
var query = db.Editions.Where(r => r.Article.ID == Article.ID);
foreach (Edition item in query)
{
// item.Language => NULL
// item.Article => {Object Article}
}
我是 .net 和 Entity-Framework 的新手,无法弄清楚为什么我总是会收到此错误。我什至可以通过 r => r.Language.ID == 1 进行查询,并且仍然在 Edition 对象上获得 NULL 属性。