EF Core 实现 DDD 中的 值对象

值对象 就是 实体类中 还有 其他 实体没有标识的 对象 如下

1. 实体对象Shop.cs

namespace aspnetcore016
{public enum Price{RMB,USD,EUR}public class Shop{public long Id { get; set; }public string ShopName { get; set; }//值对象public Coords Coords { get; set; }public Price Price { get; set; }}
}

2.Coords.CS 

namespace aspnetcore016
{public class Coords{public double Precision { get; set; }public double Dimension { get; set; }}
}

 

3.配置 shopconfig

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;namespace aspnetcore016
{public class ShopConfig : IEntityTypeConfiguration{public void Configure(EntityTypeBuilder builder){builder.ToTable("Shops");//表明 EF 将Coords 表示为值对象builder.OwnsOne(e => e.Coords);//这句 表明 枚举字段Price 以字符串的形式保存,默认为int型builder.Property(e=>e.Price).HasConversion();}}
}

示例代码

using DBcontext db = new DBcontext();
Shop shop = new Shop { ShopName = "xxx的店铺", Price = Price.RMB, Coords = new Coords { Dimension = 35.52, Precision = 46.23 } };
db.Shops.Add(shop);
db.SaveChanges();


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部