【发布时间】:2012-09-02 18:22:35
【问题描述】:
我有一个用于我的购物车系统的存储过程,它返回总金额,如下所示;
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 方法?
【问题讨论】:
-
你考虑过
ExecuteFunction而不是重构轮子吗? -
Entity Framework 有 ExecuteFunction 允许你调用存储过程。
-
我明白了,但是我想使用实体框架查询(因为我已经使用过ado.net),现在我想学习实体框架。因此,我暂时不打算使用存储过程。
标签: c# sql entity-framework ado.net