比如我有一個類繼承DbContext 可以重寫 OnModelCreating來移除約定Public class SampleEntites : DbContext{ protectedoverridevoid OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//移除復數(shù)表名的契約
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();//防止黑幕交易 要不然每次都要訪問 EdmMetadata這個表}但現(xiàn)在SampleEntites不得不繼承ObjectContext(架構已經寫死了), 要怎么移除上面的約定。Public class SampleEntites : ObjectContext{}
1 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
最好是改變架構。這是架構師應該做的工作,應該向他提出,否則他就是不負責任的架構師。
OjectContext這個東西里面放了一堆底層的方法屬性,用起來讓人火大的,實現(xiàn)還是能實現(xiàn)的,就是麻煩的要命,架構師的責任不應該有我們來承擔。要不然以后再碰上個什么需求,你還是要用ObjectContext來解決,還是不能用DbContext,浪費的時間遠遠不止,而且還是那么多人用。
再說也不至于那么麻煩吧,可能是架構擴展性的原因吧,考慮不夠周全,我們現(xiàn)在的項目任意版本的任意加,我們的ORM開始用L2S,后來EF4.0來了,用ObjectContext,再后來燈4.1穩(wěn)定了,直接用DbContext,然后在遷移到4.3.1,非常平滑,非常簡單,而且以前用ObjectContext或者是DataContext寫的都還能正常和DbContext一起正常工作。寫一個OrmContextCreateFactory就可以很好的管理所有的Context的并存問題。簡單的工廠模式就可以生產各種框架各種版本的Context了,誰也不能保證以后微軟升級不會再出個XXXContext吧。
- 1 回答
- 0 關注
- 578 瀏覽
添加回答
舉報
0/150
提交
取消