EF Core之值转换
EF Core之值转换
有的时候存在数据库里的数据和我们实际应用的是不一样的,以前只能在model里添加一个特殊的字段来手动转化,其实EF Core提供了一种更优雅解决方案—值转换
-
值转换的应用非常简单,我们这里以TimeSpan数据为例:
-
如果我们直接存储TimeSpan格式的数据,在SqlServer中是有问题的,这样的情况下,存储的数据只能是24小时以内的,这时候我们就需要存储为bigint类型:
private readonly ValueConverter timespanConverter = new ValueConverter<TimeSpan, long>(v => v.Ticks, v => new TimeSpan(v)); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<TableName>().Property(e => e.TimeSpanColumn).HasConversion(timespanConverter); }
-
-
值转换的方案启用后,我们的model内只需要管理需要的数据,数据库里存储的则是对应的数据,EF Core为我们充当转换器的角色。

浙公网安备 33010602011771号