.net EF6未在多对多上填充属性
我定义了以下POCO类,它们将演讲者映射到多对多关系中的主题:.net EF6未在多对多上填充属性,.net,entity-framework,.net,Entity Framework,我定义了以下POCO类,它们将演讲者映射到多对多关系中的主题: public class Speaker { public int Id { get; set; } public string Firstname { get; set; } public string Surname { get; set; } public virtual ICollection<SpeakerTalkTheme> TalkTheme
public class Speaker
{
public int Id { get; set; }
public string Firstname { get; set; }
public string Surname { get; set; }
public virtual ICollection<SpeakerTalkTheme> TalkThemes { get;set; }
}
public class SpeakerTalkTheme
{
[Key, Column(Order = 0)]
public int TalkThemeId { get; set; }
[Key, Column(Order = 1)]
public int SpeakerId { get; set; }
public TalkTheme TalkTheme { get; set; }
public Speaker Speaker { get; set; }
}
}
public class TalkTheme
{
public int Id { get; set; }
public string Theme { get; set; }
public int Length { get; set; }
public virtual ICollection<ThemeTag> ThemeTags { get; set; }
public virtual ICollection<SpeakerTalkTheme> TalkThemes { get;set; }
}
TalkTheme属性不应该填充吗?它当前显示为空,我不知道如何填充它。因为您需要加载另一个级别。在您的
通话中执行以下操作:
//...
var model = db.Speakers.Include(x => x.TalkThemes.Select(tt=>tt.TalkTheme )).ToList();
如果您想了解更多如何在查询中加载多个级别的示例,请查看本部分的备注部分
[
{
"TalkThemes": [
{
"TalkThemeId": 1,
"SpeakerId": 1,
"TalkTheme": null
}
],
"Id": 1,
"Firstname": "Joe",
"Surname": "Bloggs"
}
]
//...
var model = db.Speakers.Include(x => x.TalkThemes.Select(tt=>tt.TalkTheme )).ToList();