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技术 , 非技术区