C# 存储和管理SQL Server数据类型

C# 存储和管理SQL Server数据类型,c#,sql,entity-framework,C#,Sql,Entity Framework,我需要使用LINQ存储和操作以下模型,并将数据存储在SQL Server Express中: 我将属性设置为: public DbSet<Carga> Cargas { get; set; } public class Carga { public decimal PesoLiquido { get; set; } } “Carga”上的“PesoLiquido”属性无法设置为“单一”值。必须将此属性设置为“Decimal”类型的非空值 数据类型“Single”与C#中的

我需要使用LINQ存储和操作以下模型,并将数据存储在SQL Server Express中:

我将属性设置为:

public DbSet<Carga> Cargas { get; set; }

public class Carga
{
    public decimal PesoLiquido { get; set; }
}
“Carga”上的“PesoLiquido”属性无法设置为“单一”值。必须将此属性设置为“Decimal”类型的非空值


数据类型“Single”与C#中的
float
相同。没有从
浮点
十进制
的隐式转换。确保客户机设置了
decimal
值。

似乎您在C#(decimal)中有固定精度数据类型,在sql列中有浮点精度(real或float)

将sql列类型更改为money/decimal/numeric类型,或将C#字段类型更改为Single

如果你处理金钱或货物的重量将是最好的-它可以存储所有范围的价值而不损失精度


sql server上的默认十进制数为十进制数(18,0)。如果您计划使用其他比例/精度,请告知实体框架:
modelBuilder.entity().Property(c=>c.PesoLiquido).HasPrecision(16,10)

视图中的模型是什么。您发送的是一个Carga列表,而不是一个值。啊,您可能是对的。我以为这是关于客户设置的属性,OP对此不太清楚。
public ActionResult Index()
{
    return View(db.Cargas.ToList());
}