[英]How to use stored procedure in jQuery Datatable with ASP.NET MVC?
[英]Stored procedure : how to return a decimal in EF and ASP.NET MVC
我创建了这样的存储过程:
SELECT
ISNULL(SUM(p.Amount), 0.00)
FROM
Payments p
LEFT JOIN
TenantTenancies tt ON tt.TenancyId = p.TenancyId
INNER JOIN
Tenant t ON t.Id = tt.TenantId
WHERE
t.UserId = @UserId
AND p.IsTenant = 1
AND p.Date < @StartDate
我希望它在ASP.NET MVC中执行的操作是返回一个decimal
,但是它一直返回一个INT
,如何使它返回一个decimal
? 是SQL还是ASP.NET MVC方面的问题?
我知道我可以使用标量decimal
,但是这将其转换为ObjectResult(Decimal)
我只希望它返回decimal
或decimal?
。 如果我单击返回一个NONE的集合,则默认情况下它是一个int
但它可以在页面上正常工作而不会出现问题,仅是我希望它返回正确的值24.45。
我该如何实现?
那么,问题是:EF怎么会知道你只是返回一个 decimal
? 存储过程返回结果集 -可能是任意数量的行,任意数量的列。
这就是为什么要获取ObjectResult<decimal?>
。 如果您知道这将只包含一个带有一个小数的行-那么只需使用.SingleOrDefault
,并且如果它返回非null的值,则得到结果:
ObjectResult<decimal?> results = ctx.GetDecimal();
if (result != null)
{
decimal? theResult = result.SingleOrDefault();
if(theResult != null)
{
decimal resultValue = theResult.Value;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.