【问题标题】:How to handle sql Joins scenarios如何处理 sql Joins 场景
【发布时间】:2012-02-28 18:52:08
【问题描述】:

我正在使用 EF 和 mvc,因为我有一个通用存储库,基于 ObjectContext 的 unitOfWork 实现,到目前为止,CRUD 没有问题。我只是想知道如何/应该如何处理需要与实体进行连接的场景。

【问题讨论】:

  • 一般来说,使用 LINQ 可以实现带有连接的选择,但是您能否添加一个假设查询或您希望执行的操作的示例以添加一些上下文?
  • 没有具体的上下文,只是想弄清楚我的 ObjectCotnext 实现

标签: asp.net-mvc-3 entity-framework repository-pattern unit-of-work objectcontext


【解决方案1】:

有几种方法可以处理这种情况。在大多数情况下,连接不是必需的,在 EF 中通常避免使用。

var orders = orderRepository.GetAll();

var projection = orders.Where(o => o.Customer.Name == "Foo")
        .Select(o => new { o, o.Customer });

通用存储库是一个泄漏的抽象。为每个实体实现特定的存储库并创建执行连接并返回结果的方法。

【讨论】:

  • 泄漏抽象是的,我同意你的观点,但如果我们将来遇到此类问题,至少我们仍然可以选择显式存储库。
  • @user1162274 实际上你告诉你需要什么,如果需要的话 EF 会做连接:)
  • @Eranga: +1 以获得好的答案。 @user1162274: 连接可以显式完成,但由于 Eranga 所示的聚合路由,在大多数情况下您并不需要它。
猜你喜欢
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
  • 2020-06-03
  • 2013-07-14
  • 2015-04-08
  • 1970-01-01
  • 2020-05-25
相关资源
最近更新 更多