1 创建实体类:
public partial class NewsCategory : IAggregationRoot
{
public NewsCategory() { }
public Guid Id { get; set; }
public string CategoryName { get; set; }
public bool IsDel { get; set; }
public string Code { get; set; }
}
2.创建实体类的映射伙伴类
public class NewsCategoryMap : IEntityTypeConfiguration<NewsCategory>
{
public void Configure(EntityTypeBuilder<NewsCategory> builder)
{
builder.ToTable("NewsCategory");
}
}
3.在上下文中 重写 OnModelCreating
方法 将伙伴类的应用上
public class NewsEFCoreContext:DbContext,INewsContext
{
public DbSet<NewsCategory> Categories { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//先直接写连接字符串,生成数据库。后续再在配置文件中配置,并使用到此处
optionsBuilder.UseSqlServer("Server=localhost;Database=wehope;User ID=sa;Password=0");
//optionsBuilder.UseSqlServer(AppSetting.GetAppSetting("DealerContext"));
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration<NewsCategory>(new NewsCategoryMap());
base.OnModelCreating(modelBuilder);
}
}
完成。
EF Core如何使用IEntityTypeConfiguration<TEntity>
首先构建IEntityTypeConfiguration<T>
抽象泛型继承类KopEntityTypeConfiguration
public abstract class KopEntityTypeConfiguration<T> : IEntityTypeConfiguration<T>
创建基于 KopEntityTypeConfiguration
类的 GroupMappingMap
public class GroupMappingMap : KopEntityTypeConfiguration<GroupMapping>
实现 KopEntityTypeConfiguration
类的 Configure
函数
public override void Configure(EntityTypeBuilder<GroupMapping> builder)
在数据上下文 ApplicationDbContext : DbContext
实现的 OnModelCreating
函数中,使用ModelBuilder
实现应用设置
OnModelCreating
函数的全部代码是
protected override void OnModelCreating(ModelBuilder builder)
{
builder.ApplyConfiguration(new GroupMappingMap());//应用设置
base.OnModelCreating(builder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example, you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
}