我正在使用Entity Framework,POCO实体和存储库模式进行数据访问。我有一个存储库类,它返回特定类型的Iqueryable。
在我的数据库中,我有一对多关系表。 表类似于TemplatesTable和UserTable以及联结UserTemplate表
一个用户可以拥有多个模板。因此,有一个用于映射userid和templateid的联结表。现在我必须显示所有模板数据,如名称,用户的其他详细信息。 以EF POCO方式执行此操作的最佳方法是什么?
现在我正在遵循这种方法,但我明白这不是最好的方法。
var Tempaltes = TemplateRepository.All();
var templateforUser = UserTemplateRepository.where(UserId==1)
var userTemplates= from tmp in Templates
join tmpusr in templateforUser on tmp.TemplateId equals tmpusr.TemplateId
select tmp;
return userTemplates.ToList();
请建议执行此操作的最佳方法是什么。
答案 0 :(得分:1)
正确的方法是在Templates
实体上拥有User
导航属性。您只需要使用急切或延迟加载来填充导航属性,而您永远不需要使用自定义连接等任何内容。