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; 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); } }
}
这样当我们改变实体时,当有对新添加或者修改的实体进行引用,它的最新版本会直接反映到原始数据表上。
回到目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示