1 回答
TA贡献1982条经验 获得超2个赞
什么版本的EF?我无法使用简单的基于 EF6 EDMX 的数据库优先模型来重现这一点。
添加了这个过程:
CREATE PROCEDURE [dbo].[Insert]
@Value[decimal](18, 6) NULL
AS
BEGIN
Select @Value -- this would give `33` when passed `0.0033M` From C#
END
添加了数据库优先模型,生成
public virtual ObjectResult<Nullable<decimal>> Insert(Nullable<decimal> value)
{
var valueParameter = value.HasValue ?
new ObjectParameter("Value", value) :
new ObjectParameter("Value", typeof(decimal));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<decimal>>("Insert", valueParameter);
}
并跑:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp24
{
class Program
{
static void Main(string[] args)
{
using (var db = new aEntities())
{
var result = db.Insert(0.0033M);
Console.WriteLine(result.First().Value);
Console.ReadKey();
}
}
}
}
输出是
0.003300
- 1 回答
- 0 关注
- 82 浏览
添加回答
举报