gpt4 book ai didi

entity-framework - 使用具有工作单元的 Entity Framework 使用通用存储库模式连接多个表

转载 作者:行者123 更新时间:2023-12-03 23:38:06 25 4
gpt4 key购买 nike

我正在使用 MVC4 和 Entity Framework 5 开发 Web 应用程序。

我已经创建了用于使用工作单元访问数据库的通用存储库。

拥有以下两个存储库,

  • CustomerRepository - 客户表
  • LibraryRepository - 图书馆表

  • 这两个表没有相互链接(没有外键关系)。

    想通过组合这些存储库来编写查询。可以通过组合两个不同的存储库来编写查询吗?

    如果是,请告诉我方法。

    最佳答案

    如果您的通用存储库公开 IQueryable 方法,您应该能够使用 LINQ 连接来查询两个存储库:

    var items = from c in customerRepository.AsQueryable()
    join l in libraryRepository.AsQueryable() on c.SomeProperty equals l.SomeOtherProperty
    select new { CustomerName = c.FirstName, LibraryName = l.Name };

    查询可以做什么可能存在限制,但我在我自己的代码库上在两个单独的存储库之间进行了快速概念验证,并且它工作得很好(预期的 sql 触发)。

    更新

    看来您正在尝试使用 where 子句进行两个单独的查询——我不相信 LINQ2Entities 支持您尝试执行的操作。尝试将您的代码更新为以下内容:
    var customer = (
    from cus in _customer.Query()
    join lib in _library.Query()
    on cus.LId equals lib.Id select cus
    ).ToList();

    用“join/on”替换两个“from/where”查询的位置。

    关于entity-framework - 使用具有工作单元的 Entity Framework 使用通用存储库模式连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344248/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com