ado.net实体数据模型父子关系

时间:2009-06-09 10:25:54

标签: entity-framework ado.net-entity-data-model

情景 我正在玩MVC NerdDinner项目并使用ado.net实体数据模型代替'dbml'

我有2个数据库表晚餐& RSVP,其中RSVP包含DinnerID作为来自餐桌的外键。

现在当我从Dinner表访问一个特定的记录时,它返回一个带有RSVP属性的晚餐对象,但是尽管RSVP表中有来自Dinner table的外键数据,但没有该属性的数据

数据

DinnerTable

ID:1
标题:'。Net Architecture'

RSVPTable

ID:1
晚餐ID:1
AttendeeName:'Miral'

ID:2
晚餐ID:1
AttendeeName:'Shivani'

因此,在获取应该返回其子RSVP数据的Dinner数据时,我获得了包含0条记录的RSVP属性。

2 个答案:

答案 0 :(得分:2)

EF与LINQ略有不同。在您的查询中,添加类似

的内容
var dinner = context.Dinners.First(d => d.DinnerID = id).Include("Attendees");

这将告诉EF在一次提取中附加相关的Attendees对象,为您执行所有必要的连接。

答案 1 :(得分:1)

更正语法

表:'晚餐'& 'RSVP'

var dinner = _nerdDinnerEntities.Dinner.Include(“RSVP”)。其中(dd => dd.ID == ID).FirstOrDefault();

您需要在FirstOrDefault之前写入Include。

'Include'是一个关于Entity over here'方法'的方法,它包含包含外键的表名,即'RSVP'和属性'AttendeeName'。

我尝试传递其中一个属性'AttendeeName',但它没有用。