可通过多种方法来指定模型的 Fluent 映射(从类到数据库)。
1.直接在 DbContext 类的 OnModelCreating 方法中进行映射,如下所示:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<XsreAdminData>().Property(p => p.LoginTime).HasPrecision(18, 0);
modelBuilder.Entity<XsreAdminData>().Property(p => p.LoginIp).HasPrecision(18, 0);
}
2.如果有很多映射,可按类型将它们组织到各个 EntityTypeConfiguration 类中,再使用代码将这些类添加到模型生成器中,如下所示:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();//防止黑幕交易 要不然每次都要访问 EdmMetadata这个表
modelBuilder.Configurations.Add(new Mapping.XsreAdminDataMap());
}
3.这里,我使用新的 AddFromAssembly 方法来加载在正在运行的应用程序的执行程序集中指定的配置:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();//防止黑幕交易 要不然每次都要访问 EdmMetadata这个表
modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
}
此外,AddFromAssembly 也理解 EntityTypeConfiguration 中的继承层次结构。
小弟不才,如有错误,请各大大牛指点。
本群提供ASP.NET MVC,EF,LINQ,WEB API技术支持,不在乎人多,在乎人精。
ASP.NET MVC群 171560784
诚邀各路高手、初学者加入。