【问题标题】:Best Way to access Many to Many table in EntityFramework, POCO Entities and Repository Pattern在 EntityFramework、POCO 实体和存储库模式中访问多对多表的最佳方式
【发布时间】:2012-04-13 21:35:25
【问题描述】:

我正在使用实体框架、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();

请建议执行此操作的最佳方法。

【问题讨论】:

  • User-Template 的关系是多对多的吗?

标签: linq entity-framework c#-4.0 repository-pattern poco


【解决方案1】:

正确的方法是在您的User 实体上拥有Templates 导航属性。比您只需要使用急切或延迟加载来填充导航属性,而您永远不需要使用自定义连接之类的任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 2012-11-27
    • 1970-01-01
    • 2015-04-30
    相关资源
    最近更新 更多