我有這個存儲過程,它映射到實體框架4.1對象中。撥打電話實體框架在執行INSERT和UPDATE存儲過程時執行INSERT
using (TransactionScope transaction = new TransactionScope())
{
try
{
DbEntity.Car.AddObject(CarInfo);
DbEntity.SaveChanges();
/* Other object savings */
transaction.Complete();
DbEntity.AcceptAllChanges();
}
catch (Exception exp)
{
throw exp;
}
finally
{
DbEntity.Dispose();
}
}
我看到當前完成的存儲過程映射。如果我在MS SQL服務器上單獨執行存儲過程,它會正確執行。
這裏是存儲過程
ALTER PROCEDURE [dbo].[Carinsert] @Qty INT
,@StyleID INT
,@TFee MONEY
,@HWayTax MONEY
,@OFees MONEY
,@OFeesDescription NTEXT
,@MUp DECIMAL(18, 4)
,@BAss MONEY
,@PriceMSRP MONEY
,@PriceSpecial MONEY
AS
BEGIN
SET nocount ON
DECLARE @PTotal MONEY
DECLARE @TaxFeesNet MONEY
DECLARE @CarID INT
SET @TaxFeesNet = Isnull(@TFee, 0) + Isnull(@HWayTax, 0)
+ Isnull(@OFees, 0)
IF(@PriceSpecial IS NULL)
BEGIN
SET @PTotal = @PriceMSRP + @TaxFeesNet
END
ELSE
BEGIN
SET @PTotal = @PriceSpecial + @TaxFeesNet
END
INSERT INTO Car
(Qty
,StyleID
,MUp
,BAss
,PriceMSRP
,PriceSpecial
,TFee
,HWayTax
,OFees
,OFeesDescription
,PriceTotal)
VALUES (@Qty
,@StyleID
,@MUp
,@BAss
,@PriceMSRP
,@PriceSpecial
,@TFee
,@HWayTax
,@OFees
,@OFeesDescription
,@PTotal)
SELECT Scope_identity() AS CarID
END
如果我執行該像MS SQL它計算在表中的PriceTotal列作爲3444.00,這是正確的。
@Qty= 5,
@StyleID = 331410,
@TFee = NULL,
@HWayTax = NULL,
@OFees = NULL,
@OFeesDescription = NULL,
@MUp = 4,
@BAss = 10000,
@PriceMSRP = 20120,
@PriceSpecial = 3444
當我運行了MVC的Web應用程序,我調試&看到這些傳遞的值和PriceTotal來20120.00
我無法弄清楚,爲什麼它不會做的IF ELSE計算&使用價格。
其他人看到奇怪的東西嗎?這幾天來一直令人望而生畏。任何幫助讚賞。由於
更新 我的標題更新,以更好地指導別人