【问题标题】:Entity Framework Linq2Db Translation实体框架 Linq2Db 翻译
【发布时间】:2021-03-23 18:45:04
【问题描述】:

我正在升级一个使用实体框架的网站,现在使用 Linq2Db。我注意到 Linq2Db 没有导航属性。我将如何从 Entity Framework 翻译这段代码?我需要返回一个包含订单项目、发货和其他相关对象列表的订单。我无法一一查询订单商品、发货和其他对象。

           IQueryable<Order> query = GetExpandedOrderTable();
            DateTime beginTime = settings.LastDownloadUtc;
            DateTime endTime = settings.LastDownloadUtcEnd;

            query = query.Where(a => a.CreatedOnUtc >= beginTime);
            query = query.Where(a => a.CreatedOnUtc <= endTime);

            List<int> storeIds = GetStoreIds();

            if (storeIds.Count() > 0)
                query = query.Where(a => storeIds.Contains(a.StoreId));

            return new PagedList<Order>(query, 0, 1000).ToList();


    /// <summary>
    /// Expands order items and other sub properties.
    /// Increases performance.
    /// </summary>
    /// <returns></returns>
    private IQueryable<Order> GetExpandedOrderTable()
    {
        return orderRepository.Table
            .Include(a => a.OrderItems)
            .Include("OrderItems.Product")
            .Include(a => a.OrderNotes)
            .Include(a => a.GiftCardUsageHistory)
            .Include(a => a.BillingAddress)
            .Include(a => a.BillingAddress.StateProvince)
            .Include(a => a.BillingAddress.Country)
            .Include(a => a.ShippingAddress)
            .Include(a => a.ShippingAddress.StateProvince)
            .Include(a => a.ShippingAddress.Country)
            .Include(a => a.Customer)
            .Include(a => a.DiscountUsageHistory)
            .Include(a => a.Shipments);
    }`

【问题讨论】:

标签: entity-framework linq2db


【解决方案1】:

EF 导航属性 => linq2db 关联

EF Eager Loading Include() => linq2db LoadWith()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多