情景 我正在玩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属性。
答案 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',但它没有用。