Entity Framework Core 2.0表自定义映射

来源:互联网 发布:ecshop 2.7.3 php版本 编辑:程序博客网 时间:2024/06/05 19:43

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>{    public DbSet<OrderItem> OrderItems { get; set; }    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }    protected override void OnModelCreating(ModelBuilder builder)    {        base.OnModelCreating(builder);                // 自定义必须包括 base.OnModelCreating(builder)        builder.ApplyConfiguration(new ApplicationUserConfig());        builder.ApplyConfiguration(new OrderItemConfig());        // 添加更多自定义设置    }}

public class ApplicationUserConfig : IEntityTypeConfiguration<ApplicationUser>{    public void Configure(EntityTypeBuilder<ApplicationUser> builder)    {        // 设置该nvarchar类型,最大为15个字符        builder.Property(u => u.PhoneNumber).HasMaxLength(15);        // 设置实体AspNetUsers的表名为Users        builder.ToTable("Users");    }}
public class OrderItemConfig : IEntityTypeConfiguration<OrderItem>{    public void Configure(EntityTypeBuilder<OrderItem> builder)    {        // 设置该列类型为datetime        builder.Property(o => o.DateTimeOrdered).HasColumnType("datetime");        // 设置属性Quantity默认值为1        builder.Property(o => o.Quantity).HasDefaultValue(1);        // 设置属性UniqueKey为主键        builder.HasKey(o => o.UniqueKey);    }}

注意在以上例子中,项目可以通过继承IEntityTypeConfiguration该类型,设置表的映射




原创粉丝点击