这是我的课程(我使用的是 Entity Framework 5;.Net Framework 4.0):
public class Role
{
public int RoleId { get; set; }
public string Name { get; set; }
[NotMapped]
public List<RolePrompt> RolePrompts { get; set; }
[NotMapped]
public List<RoleFeature> RoleFeatures { get; set; }
}
public class RolePrompt
{
public int RolePromptId{get;set;}
public int RoleId{get;set;}
public int PromptId{get;set;}
public Role Role{get;set;}
}
public class RoleFeature
{
public int RoleFeatureId{get;set;}
public int RoleId{get;set;}
public int FeatureId{get;set;}
public Role Role{get;set;}
}
我将如何加载一个角色对象,其中所有子对象都填充了一个 db 调用?我知道如何通过多个存储库调用来做到这一点。
Role role = roleRepository.Find(roleId);
role.RolePrompts = rolePromptsRepository.FindByRoleId(roleId);
role.RoleFeatures = roleFeaturesRepository.FindByRoleId(roleId);
... 等等
上面的代码多次调用数据库。我希望在一个数据库调用中使用 RolePrompts 和 RoleFeatures 加载 Role 对象。