У меня есть эта хранимая процедура, которая отображается в объекте Entity Framework 4.1. Вызов производится в пределахEntity Framework выполняет как хранимые процедуры 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, и я отладки & увидеть эти значения, передаваемые и PriceTotal приходит 20120.00
Я не мог понять, почему он не делает ELSE вычисление IF & использовать цена.
Кто-нибудь еще видит что-то странное? Это было непросто в течение нескольких дней. Любая помощь оценивается. Благодаря
Update Я обновил титул лучшего руководства других