the*_*mer 2 c# sql-server entity-framework decimal
我有一个像这样的 C# 实体框架类:
public class Card
{
public decimal CardNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在数据库中,该值的存储方式如下:
[card_number] [decimal](38, 2) NULL
Run Code Online (Sandbox Code Playgroud)
然后当我去运行这段代码时:
entities.Set<Card>().Add(card);
entities.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
(保存更改应该会失败)
我似乎得到了这个例外:
参数值“2509067194275615035776.00”超出范围。
我尝试在 SQL Server Management Studio 中手动插入该值,它似乎工作正常......
bigint请注意,这最近从 C# 中的 long 和SQL Server 中的a 更改为decimalC# 中的 long 和decimalSQL Server 中的 a ...
我还有这个配置类,看起来像这样,并将 C# 对象映射到数据库......
public class CardConfiguration : TrackedEntityConfiguration<Card>
{
public CardConfiguration()
{
ToTable("Card", "dbo");
Property(c => c.CardNumber)
.HasColumnName("card_number")
.IsRequired();
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我会收到此异常,因为它似乎不大于 SQL Server 中的十进制最大值......
我对实体框架有点陌生,所以也许我在某个地方缺少一些其他配置?
您需要指定小数的精度。例如:
Property(c => c.CardNumber).HasColumnName("card_number").HasPrecision(18, 6);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |