即使指定了精度,实体框架验证警告:XAF 日志
Posted
技术标签:
【中文标题】即使指定了精度,实体框架验证警告:XAF 日志【英文标题】:Entity Framework validation warning even though precision is specified: XAF Log 【发布时间】:2022-01-21 17:30:32 【问题描述】:我的业务对象中有以下内容
using System.ComponentModel.DataAnnotations;
和
[ModelDefault("DisplayFormat", "0:g")]
[ModelDefault("EditMask", "g")]
[DataType("decimal(18,5)")]
public decimal Score get; set;
应用程序按预期运行,但在 eXpressAppFramework.log 中我看到了
Microsoft.EntityFrameworkCore.Model.Validation:警告:没有类型 为实体类型上的小数属性“分数”指定 '评分条目'。这将导致值被静默截断,如果它们 不适合默认的精度和比例。明确指定 可以容纳所有值的 SQL Server 列类型 'OnModelCreating' 使用 'HasColumnType()',指定精度和比例 使用“HasPrecision()”或使用配置值转换器 'HasConversion()'。
【问题讨论】:
【参考方案1】:EF 只是不读取 DataTypeAttribute 作为其配置的一部分。使用 ColumnAttribute,例如
[Column(TypeName = "decimal(18,5)")]
配置Column Data Types。之所以会产生混淆,是因为 System.ComponentModel.DataAnnotations 不仅仅用于 EF 实体注释。
【讨论】:
以上是关于即使指定了精度,实体框架验证警告:XAF 日志的主要内容,如果未能解决你的问题,请参考以下文章