zoukankan      html  css  js  c++  java
  • 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);
               }
           }
         }
    这样当我们改变实体时,当有对新添加或者修改的实体进行引用,它的最新版本会直接反映到原始数据表上。


    回到目录
  • 相关阅读:
    PHP面试系列之Linux(一) ----- Linux基础
    Redis入门(一)---安装
    获取主机ip地址
    Ubuntu安装Apache
    Ubuntu安装MySQL/MariaDB
    Ubuntu安装PHP7
    shell一次性执行多条命令
    将宿主主机上的目录挂载到Docker中
    bind 仿造 重写bind
    echars 饼状图 轮循 水平翻转
  • 原文地址:https://www.cnblogs.com/lori/p/2369872.html
Copyright © 2011-2022 走看看