【发布时间】:2019-01-05 06:11:18
【问题描述】:
我通过创建BaseEntity.cs 类为每个实体添加了DateCreated、UserCreated、DateModified 和UserModified 字段。我的要求是生成单个表,其中包含base 类的所有字段作为列。
public class BaseEntity
{
public DateTime? DateCreated { get; set; }
public string UserCreated { get; set; }
public DateTime? DateModified { get; set; }
public string UserModified { get; set; }
}
这是我的Student 课程
public class Student : BaseEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
这是我的上下文类
public class SchoolContext: DbContext
{
public LibraContext(DbContextOptions<SchoolContext> options)
: base(options)
{ }
public DbSet<Student> Students { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//CreatedDate
modelBuilder.Entity<BaseEntity>().Property(x => x.DateCreated).HasDefaultValueSql("GETDATE()");
//Updated Date
modelBuilder.Entity<BaseEntity>().Property(x => x.DateModified).HasDefaultValueSql("GETDATE()");
}
我已运行以下迁移命令来创建脚本和更新数据库
Add-Migration -Name "InitialMigration" -Context "SchoolContext"
update-database
它在 SQL Server 数据库中创建了单独的表 BaseEntity 和 Student。我的期望是创建一个 Student 表,其中所有 BaseEntity 字段作为列。
如何实现?
我正在使用 ASP.NET CORE2.1
【问题讨论】:
标签: c# entity-framework migration entity-framework-core database-migration