当前位置:编程学习 > C#/ASP.NET >>

EF架构——code first开发中,在修改实体时,自动影响到数据表上

EF领域由code first,data first和model first三种模式,目前对于小型项目开发用code first就可以,操作灵活。
使用code first模式时,如果当实体添加、修改后,如果希望直接反映到数据表上,需要做一些设置;
比如,添加了一个userbase类型,希望把它反映到数据表上,我们可以这样做:

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; .NET教程
               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);
           }
       }
      }
这样当我们改变实体时,当有对新添加或者修改的实体进行引用,它的最新版本会直接反映到原始数据表上。
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,