0
我使用EF 4.2,最初我为每个实体集推出了自己的存储库类。正如我调查further我意识到,DbContext和IDbSet实现了我需要的工作单元和存储库模式。扩展EF实体检索方法
这很好,但我也想用一些“助手”方法来返回使用除主键以外的常用请求属性的特定实体。
例如,通过电子邮件和帐户状态而不是Id主键选择员工。我的原始用户存储库有这个重载。
我的问题是我应该在哪里添加这个辅助方法?我认为自己有以下几种选择:
- 添加一个域逻辑服务类型类,该方法使用dbContext,并被其他域逻辑类和方法使用。
- 扩展DbContext类以具有其他方法。
- 用自定义存储库替换IDbSet。
- 将dbContext包装在每个实体集的其他Repository类中,并将方法添加到用户特定的方法中。
似乎每个人都有优点和缺点,但我更倾向于1或2。任何想法?
那是我的第五个选项;)我已经提取的界面与我上下文(使用T4模板),我正在使用我的域逻辑类中的这个接口。我可以/应该将它添加到界面的签名中吗? – 2012-02-03 17:50:28
这是扩展方法 - 它是静态的,所以它不是任何接口的一部分。 – 2012-02-03 17:53:09