相关疑难解决方法(0)

EFCore为简单的LEFT OUTER连接返回了太多列

我目前正在使用SQL Server的EFCore 1.1(预览版).

我正在做我认为是OrderOrderItem表之间的简单OUTER JOIN .

      var orders = from order in ctx.Order
                   join orderItem in ctx.OrderItem

                   on order.OrderId equals orderItem.OrderId into tmp

                   from oi in tmp.DefaultIfEmpty()

                   select new
                   {
                       order.OrderDt,
                       Sku = (oi == null) ? null : oi.Sku,
                       Qty = (oi == null) ? (int?) null : oi.Qty
                   };
Run Code Online (Sandbox Code Playgroud)

返回的实际数据是正确的(我知道早期版本的OUTER JOINS根本没有工作的问题).然而,SQL很糟糕,并且包括每个列,Order并且OrderItem考虑到其中一个是大型XML Blob ,这是有问题的.

SELECT [order].[OrderId],[order].[OrderStatusTypeId],[order].[OrderSummary],[order].[OrderTotal],[order].[OrderTypeId],[order].[ParentFSPId],[订单].[ParentOrderId],[order].[PayPalECToken],[order].[PaymentFailureTypeId] ....

... [orderItem].[OrderId],[orderItem].[OrderItemType],[orderItem].[Qty],[orderItem].[SKU] FROM [Order] AS [order] LEFT JOIN [OrderItem] AS [orderItem ] ON [order].[OrderId] …

entity-framework entity-framework-core

10
推荐指数
1
解决办法
1094
查看次数