1. 程式人生 > >EF 實體類 如何動態對映到其它的表上

EF 實體類 如何動態對映到其它的表上

為了提高系統的執行效率, 我把一些不常用的資料移到了另外一個歷史記錄表.
為了減少不必要的修改, 僅僅是查詢老資料的時候切換到另外一個表其它的不改變.
百度了好久,最好終於找到了答案. 網路上流傳的寫法太麻煩.
我改成了比較簡潔的寫法.

           var dbConn = DBContextFactory.GetConnection();
//          if(查詢的是老表)
            DbModelBuilder dbmodel = new DbModelBuilder();3
             dbmodel.Configurations.
Add(new WReportMap()); //重新對映欄位關係. dbmodel.Entity<WReport>().ToTable("w_report_history"); //切換表對映. var dbmodelcompile = dbmodel.Build(dbConn).Compile(); var newContext = new DbContext(dbConn, dbmodelcompile,true); //新的DbContext,替代老的. var query = newContext.
Set<WReport>().Where(queryfields);

當然這也做會有一個問題, 記憶體會暴漲, 還是要做好快取工作的. 程式設計中遇到Compile 這個關鍵字的,可都是比較耗記憶體耗時間的程式碼哦… 最好快取起來. 至於如何快取, 這個我就不講了.