日期:2014-05-16  浏览次数:21777 次

Entity FrameWork 数据库表名是动态变化 的问题,OnModelCreating方法不执行

如图,数据库的表名是tab_sensor_+日期每天更新表名,这时候用Entity Framework访问数据库的时候就涉及到动态映射表名,我再网上查到一个办法是
   
public HNSServerEntities()
            : base("name=HNSServerEntities")
        {
            
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约
            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();//移除对MetaData表的查询验证,要不然每次都要访问EdmMetadata这个表

            //数据库与实体映射
            modelBuilder.Entity<TAB_SENSOR>().ToTable("tab_sensor_20130529");

            //throw new UnintentionalCodeFirstException();
        }


重载OnModelCreating,里面写上数据库与实体映射关系,但是我运行的时候OnModelCreating这个方法根本断电不到,也就是说OnModelCreating一直没有执行,这是为什么呢?
或者各位还有什么比较好的办法解决动态表名的问题么?
------解决方案--------------------
我觉得OnModelCreating这个方法只有在你第一次启动模型的时候才能进去。。