码迷,mamicode.com
首页 > Windows程序 > 详细

Entity Framework 一次加载许多个 Fluent API 映射

时间:2014-07-22 22:37:33      阅读:490      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   数据   io   re   c   

可通过多种方法来指定模型的 Fluent 映射(从类到数据库)。

1.直接在 DbContext 类的 OnModel­Creating 方法中进行映射,如下所示:

 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.如果对于许多实体有大量映射,则 OnModelCreating 中会有许多重复的 modelBuilder.Configurations.Add 方法。 为了从这种枯燥的工作中解放出来,您现在可以只用一个方法从给定程序集加载所有 EntityTypeConfiguration。 这里,我使用新的 AddFromAssembly 方法来加载在正在运行的应用程序的执行程序集中指定的配置:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约      
            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();//防止黑幕交易 要不然每次都要访问 EdmMetadata这个表 

            modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
        }

 这种方法的一个出色功能是,它不受将要加载的配置的范围限制。 甚至可以将自定义 EntityTypeConfiguration 类标记为私有,该方法会找到这些类。 此外,AddFromAssembly 也理解 EntityTypeConfiguration 中的继承层次结构。

 

小弟不才,如有错误,请各大大牛指点。

 

本群提供ASP.NET MVC,EF,LINQ,WEB API技术支持,不在乎人多,在乎人精。
ASP.NET MVC群 171560784  
诚邀各路高手、初学者加入。

Entity Framework 一次加载许多个 Fluent API 映射,布布扣,bubuko.com

Entity Framework 一次加载许多个 Fluent API 映射

标签:blog   使用   数据   io   re   c   

原文地址:http://www.cnblogs.com/kezhiping/p/3860667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!