对ADO.NET实体框架和1:*关系进行故障排除

时间:2009-04-30 16:37:58

标签: entity-framework

我正在尝试完成一个简单的任务,即使用2个具有1:*关系的表创建数据库。

在一张桌子(Foos)中,我有

Id
...
...

在其他(酒吧)我有

Id
FooId
...
...
...

我创建了一个从Bars到Foos的外键关系,其中Foriegn Key Table是指向FooId列的Bars,而主键表是指向Id列的Foos。

然后我创建了我的ADO.NET实体数据模型,它正确地选取了Foos和Bars表以及关系并创建了导航属性。

现在,在我的MVC应用程序中,我试着像这样得到一个Foo:

var foo = (from f in _db.Foos where f.Id == id select f).FirstOrDefault();

然后我尝试访问foo对象的Bars属性并且没有得到任何结果。 但是,如果我检查_db.Bars集,我会看到带有FooId的Bars设置为正确的id。

我应该怎么做才能解决为什么这种关系不起作用?我已经查看了MSDN中的许多教程和文档中的表关系,但没有什么是明显错误的。

我正在尝试在ASP.NET MVC应用程序中使用它,以防相关。

1 个答案:

答案 0 :(得分:4)

在Foos桌上使用包含

var foo =(来自_db.Foos.Include(“Bars”)中的f,其中f.Id == id选择f).FirstOrDefault();