1

场景我正在玩 MVC NerdDinner 项目并在“dbml”上使用 ado.net 实体数据模型

我有2个数据库表Dinner & RSVP,其中RSVP 包含DinnerID 作为Dinner 表中的外键。

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

数据

餐桌

ID:1
标题:“.Net 架构”

回复表

ID:1
晚餐 ID:1
参加者姓名:“Miral”

ID:2
晚餐 ID:1
参加者姓名:“Shivani”

因此,当获取应该返回其子 RSVP 数据的晚餐数据时,我得到了带有 0 条记录的 RSVP 属性。

4

2 回答 2

2

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

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

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

于 2009-06-09T10:55:07.330 回答
1

正确的语法

表:“晚餐”和“回复”

var Dinner =_nerdDinnerEntities.Dinner.Include("RSVP").Where(dd => dd.ID == ID).FirstOrDefault();

您需要在 FirstOrDefault 之前编写 Include。

'Include' 是这里 'Dinner' 实体上的一个方法,它包括包含外键的表名,即 'RSVP' 和属性 'AttendeeName'。

我尝试传递属性“AttendeeName”之一,但没有成功。

于 2009-06-10T11:49:51.043 回答