相关疑难解决方法(0)

EF Code First中的十进制精度和比例

我正在尝试这种代码优先的方法,但我现在发现System.Decimal类型的属性被映射到decimal(18,0)类型的sql列.

如何设置数据库列的精度?

.net c# entity-framework decimal ef-code-first

215
推荐指数
10
解决办法
14万
查看次数

不需要的十进制截断

我的型号:

public class Product
{
    ...
        public decimal Fineness { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

播种数据库:

new List<Product>
        {
            new Product { ..., Fineness = 0.757M, ... },
            new Product { ..., Fineness = 0.674M, ... },
            new Product { ..., Fineness = 0.475M, ... }
        }.ForEach(p => context.Products.Add(p));
Run Code Online (Sandbox Code Playgroud)

查询数据库以测试种子:

var products = db.Products.ToList();
foreach (var p in products)
{
    S.D.Debug.WriteLine("ProductList: {0}, {1}", p.Name, p.Fineness);
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

ProductList: Test Product, 0.75 
ProductList: Test Product, 0.67 
ProductList: Test Product, 0.47    
Run Code Online (Sandbox Code Playgroud)

我做的事真的很傻或者什么?一切都被截断到2位小数. …

c# asp.net-mvc entity-framework truncate

26
推荐指数
1
解决办法
9914
查看次数