为了账号安全,请及时绑定邮箱和手机立即绑定

Entity Framework 4.1 在继承自ObjectContext的子类中如何移除默认约定

Entity Framework 4.1 在继承自ObjectContext的子类中如何移除默认约定

绝地无双 2018-07-06 10:14:16
比如我有一个类继承DbContext 可以重写 OnModelCreating来移除约定Public class SampleEntites : DbContext{ protectedoverridevoid OnModelCreating(DbModelBuilder modelBuilder)         {             modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除复数表名的契约            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();//防止黑幕交易 要不然每次都要访问 EdmMetadata这个表}但现在SampleEntites不得不继承ObjectContext(架构已经写死了), 要怎么移除上面的约定。Public class SampleEntites : ObjectContext{}
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

最好是改变架构。这是架构师应该做的工作,应该向他提出,否则他就是不负责任的架构师。

OjectContext这个东西里面放了一堆底层的方法属性,用起来让人火大的,实现还是能实现的,就是麻烦的要命,架构师的责任不应该有我们来承担。要不然以后再碰上个什么需求,你还是要用ObjectContext来解决,还是不能用DbContext,浪费的时间远远不止,而且还是那么多人用。

再说也不至于那么麻烦吧,可能是架构扩展性的原因吧,考虑不够周全,我们现在的项目任意版本的任意加,我们的ORM开始用L2S,后来EF4.0来了,用ObjectContext,再后来灯4.1稳定了,直接用DbContext,然后在迁移到4.3.1,非常平滑,非常简单,而且以前用ObjectContext或者是DataContext写的都还能正常和DbContext一起正常工作。写一个OrmContextCreateFactory就可以很好的管理所有的Context的并存问题。简单的工厂模式就可以生产各种框架各种版本的Context了,谁也不能保证以后微软升级不会再出个XXXContext吧。


查看完整回答
反对 回复 2018-08-13
  • 1 回答
  • 0 关注
  • 527 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信