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

yscandjjb 2013-05-29 01:53:58

如图,数据库的表名是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一直没有执行,这是为什么呢?
或者各位还有什么比较好的办法解决动态表名的问题么?
...全文
1062 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ananmxw 2014-08-12
  • 打赏
  • 举报
回复
引用 4 楼 yscandjjb 的回复:
我奇怪的是为什么protected override void OnModelCreating(DbModelBuilder modelBuilder)这个方法没有被执行
using (var db = new testEntities()) { var car = new Car { CarId = 1, CarName = "hello" }; db.Cars.Add(car); db.SaveChanges(); } db.Cars.Add(car);这条语句会触发OnModelCreating;
狐狸大仙 2014-03-12
  • 打赏
  • 举报
回复
不知道楼主解决了没? 我也遇到这个问题,改成 codefirst之后确实是有效的,但是速度很慢很慢。
yscandjjb 2013-06-06
  • 打赏
  • 举报
回复
问题还有有解决,不过我现在明白了OnModelCreating这个方法是只有在code first模式下才会运行,我现在的不是code first,而是database first,已经有了数据库,然后用ado.net数据实体模型创建的实体类edmx文件,
yscandjjb 2013-06-04
  • 打赏
  • 举报
回复
今天再顶起来看看有没有人知道的
  • 打赏
  • 举报
回复
我觉得OnModelCreating这个方法只有在你第一次启动模型的时候才能进去。。
易之盛软件 2013-06-04
  • 打赏
  • 举报
回复
共同关注,期待达人
yscandjjb 2013-05-29
  • 打赏
  • 举报
回复
我奇怪的是为什么protected override void OnModelCreating(DbModelBuilder modelBuilder)这个方法没有被执行
q107770540 2013-05-29
  • 打赏
  • 举报
回复
另外一种解决方案,不映射实体 直接用EF执行SQL语句,虽然这有些大材小用了 context.Database.ExecuteSqlCommand("select * from tab_sensor_20130529");
yscandjjb 2013-05-29
  • 打赏
  • 举报
回复
顶起来顶起来顶起来顶起来
yscandjjb 2013-05-29
  • 打赏
  • 举报
回复
顶起来顶起来顶起来顶起来

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧