EF架構——code first開發中,在修改實體時,自動影響到數據表上


回到目錄

EF領域由code first,data first和model first三種模式,目前對於小型項目開發用code first就可以,操作靈活。

使用code first模式時,如果當實體添加、修改后,如果希望直接反映到數據表上,需要做一些設置;

比如,添加了一個userbase類型,希望把它反映到數據表上,我們可以這樣做:

image

public class DataContext : DbContext, IDataContext
   {
   public DataContext()
           : base(DataContext.GetCS())
       {
         InitDbSets();
       }
   public IDbSet<Category> Categorys { get; private set; }
private void InitDbSets()
      {
    UserBases = this.Set<UserBase>();
    Init();
   }
public static void SetInitializer(InitializerTypes InitType)
       {
           switch (InitType)
           {
               case InitializerTypes.Standard:
                   Database.SetInitializer(new StandardInitializer());
                   break;
               case InitializerTypes.ReCreateAlWays:
                   Database.SetInitializer(new ReCreateInitializer());
                   break;
               case InitializerTypes.ReCreateByModify:
                   Database.SetInitializer(new ReCreateWhenModifiedInitializer());
                   break;
               default:
                   break;
           }
       }
       /// <summary>
       /// DBContext初始化
   /// </summary>
       public static void Init()
       {
           Database.DefaultConnectionFactory = new SqlConnectionFactory();
           if (System.Diagnostics.Debugger.IsAttached)
           {
               DataContext.SetInitializer(DataContext.InitializerTypes.ReCreateByModify);
           }
           else
           {
               DataContext.SetInitializer(DataContext.InitializerTypes.Standard);
           }
       }
     }
這樣當我們改變實體時,當有對新添加或者修改的實體進行引用,它的最新版本會直接反映到原始數據表上。


回到目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM