我有一个存储过程用于我的购物车系统,该过程返回总金额,如下所示;
ALTER PROCEDURE [dbo].[ShoppingCartGetTotalAmount]
(@CartID char(36))
AS
SELECT ISNULL(SUM(Product.Price * ShoppingCart.Quantity), 0)
FROM ShoppingCart INNER JOIN Product
ON ShoppingCart.ProductID = Product.ProductID
WHERE ShoppingCart.CartID = @CartID
但是,现在我想在实体框架中做同样的事情。因此,我需要知道以下任一选项;
1)如何在Entity FrameWork i-e中执行上述任务
SELECT ISNULL(SUM(Product.Price * ShoppingCart.Quantity), 0)
FROM ShoppingCart INNER JOIN Product
ON ShoppingCart.ProductID = Product.ProductID
WHERE ShoppingCart.CartID = @CartID
2)或C#中SQL ISNULL()函数的等同性是什么?
3)或如何实现->
ISNULL(SUM(Product.Price * ShoppingCart.Quantity), 0)
使用任何.Net方法?
最佳答案
C#具有null coalesce operator-??
。
??运算符称为null-coalescing运算符,用于为可为空的值类型或引用类型定义默认值。如果操作数不为null,则返回左侧的操作数;否则,返回0。否则返回正确的操作数。
EF理解此运算符并正确翻译。