如何将我的SQL查询转换为Entity Framework DBContext

帕沙

知名会员
已加入
2020年4月29日
留言内容
64
编程经验
1-3
大家好,

我有一个用SQL写的查询,但现在我想将其转换为EF,但在理解如何在EF中合并多个select语句时遇到困难。

SQL查询:

SQL:
SELECT TOP {count} *
FROM
(
    SELECT    co.orderid,co.orderStatusId,
            co.paymenttransactionstatusid,
            (
                SELECT Count(IdProductSelect)
                FROM orderproductselect ops
                WHERE ops.orderid = co.orderid
                AND co.orderstatusid IN ( 2, 9 )
                AND ops.quantity - ops.splitquantity > 1
            ) AS LineItemsCount
    FROM ci_orders co
) AS temp
WHERE lineitemscount > 1
AND paymenttransactionstatusid = 1
AND orderid NOT IN (SELECT orderid FROM ordersplit)
AND orderid Not IN (SELECT ChildOrderId FROM ordersplit)
ORDER BY LineItemsCount

尝试过的EF:

C#:
public static List<ci_orders> GetOrdersWithMultipleLineItemAndQTY(int count)
{
    using (var context = GetDbContext())
    {
        var jobList = context.Orders
            .OrderByDescending(x => x.orderId)
            .Take(count).ToList();
        return jobList;
    }
}
 
由主持人最后编辑:

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,538
地点
弗吉尼亚州切萨皮克
编程经验
10+
我避免像瘟疫一样避开EF,但我的理解是EF可以选择仅传递一些原始SQL,它将执行查询。显然,它不知道如何将查询结果映射回实体,因此您可以根据结果实例化实体。
 

尼尔

论坛管理员
工作人员
已加入
2011年4月15日
留言内容
147
地点
VA
编程经验
10+
我喜欢EF,尤其是EF Core,他们取得了长足的进步。观看最近 频道9 系列以了解更多。但这不是主题。
 
最佳 底部