Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架数据库第一个十进制精度_C#_Sql Server_Asp.net Mvc - Fatal编程技术网

C# 实体框架数据库第一个十进制精度

C# 实体框架数据库第一个十进制精度,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,我是MVC新手,我使用数据库优先(SQLServer2008)方法使用EF6。我的问题是,我试图用3位小数保存一个十进制值,保存是可以的,但当我在SQL Server 2008数据库中查看它时,它保存了2位精确的小数,然后是0 例如,我试图保存0.025,我可以看到它在我的保存方法中通过了0.025,但当我查看数据库中保存的内容时,它是0.0200,数据库数据类型是decimal(18,4)。我做错了什么?请帮忙 更新: 我可能已经发现类似的问题被问到并回答了,我必须在创建模型时设置十进制精度,

我是MVC新手,我使用数据库优先(SQLServer2008)方法使用EF6。我的问题是,我试图用3位小数保存一个十进制值,保存是可以的,但当我在SQL Server 2008数据库中查看它时,它保存了2位精确的小数,然后是0
例如,我试图保存0.025,我可以看到它在我的保存方法中通过了0.025,但当我查看数据库中保存的内容时,它是0.0200,数据库数据类型是decimal(18,4)。我做错了什么?请帮忙

更新:
我可能已经发现类似的问题被问到并回答了,我必须在创建模型时设置十进制精度,但我如何才能做到这一点,因为它似乎只适用于代码优先的方法:

modelBuilder.Properties().Configure(c=>c.HasPrecision(18,3));

过程并不像可能的那样清晰,但您可以在属性中执行。请参见以下两个链接:

附图:


我看到了长话短说的答案,以下是答案

步骤1 将sql server数据库表的数据类型更改为“float”

步骤2 将相应的ASP.NET模型属性数据类型更改为“double”

这将很容易解决问题

但是,保存(在创建)和编辑(在编辑)视图时可能会出错。要解决这些问题,只需将@Html.EditFor更改为与属性名同名的手动文本框

同样,在列表和详细信息中,使用model属性代替@Html.DisplayFor方法

对于那些仍然不清楚如何更改视图、模型数据类型和数据库表数据类型的人,这里是

但是,如果您了解ASP.NETMVC和EntityFramework的基础知识,则无需阅读完整的文章

modelBuilder.Properties<decimal>().Configure(c => c.HasPrecision(18, 3));