c# - SQL Server Decimal - 为什么我的十进制值只捕获小数点后两位小数?是的,它是小数(18,5)

标签 c# sql sql-server

首先我会说我的十进制数据类型定义为 decimal(18,5):

enter image description here

我的应用在进入数据库之前的值是:

enter image description here

到目前为止,一切看起来都很好。我应该在我的数据库表中看到 Capsule105 列的值 0.47588。但是,在我的记录保存到数据库后,我查看了它插入的记录——看看最后一行:

enter image description here

该值不应停在小数点后两位。它应该转到我的数据库中定义的最后一个小数位,对吧?

这是我的 InsertOrUpdate 方法(在 VS 中附带模板):

public void InsertOrUpdate(CalculatedResults calculatedresults)
{
    if (calculatedresults.Pk == default(int)) {
        // New entity
        context.CalculatedResults.Add(calculatedresults);
    } else {
        // Existing entity
        context.Entry(calculatedresults).State = EntityState.Modified;
    }
}

我正在使用 Code First 方法并从我的模型生成我的数据库。

知道这里发生了什么吗???请帮忙!!

最佳答案

我有一个类似的问题,所以这可能会有所帮助:我必须在 DbContext 中指定类型。在我的例子中,数据库中的字段是 Money 类型,模型属性的 C# 类型是 Decimal:

modelBuilder.Entity<MyEntity>().Property(e => e.Value).HasColumnType("Money");

不知道,但如果可能的话,如果您将其更改为“Decimal”甚至“Decimal(18,5)”,也许它会起作用。或获取 ta.speot 的评论:

modelBuilder.Entity<MyEntity>().Property(e => e.Value)
            .HasColumnType("Decimal")
            .HasPrecision(18, 5);

关于c# - SQL Server Decimal - 为什么我的十进制值只捕获小数点后两位小数?是的,它是小数(18,5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070232/

相关文章:

c# - 如何为 DateTimePicker DatePart WPf 设置格式

c# - 将匿名类型转换为动态类型

MYSQL 如果还有什么?正确的说法是什么(来自多个供应商的库存)

c# - 我如何跟踪对数据库所做的所有更改并将它们保存以供审查?

c# - 是否建议在静态类本身中包含扩展方法?

mysql - 在 sql 脚本中插入之间的等待时间?

mysql多对多删除级联留下孤儿

sql - 这两个查询是否相同 - GROUP BY 与 DISTINCT?

sql - 从 SQL Server 2012 数据库获取 .sql 文件

SQL : Remove duplicate based on a critera