zoukankan      html  css  js  c++  java
  • EntityFramework6.X 之DbContex

    DbContext

    数据库上下文DbContext是ObjectContext代表之一负责管理在运行时从数据库取数据、跟踪数据库的变更、对实体类映射到数据中持久化操作等,表示工作单元和存储库模式的组合,可用来查询数据库并将更改组合在一起,这些更改稍后将作为一个单元写回存储区。

    1.使用原则

    • 通常与DbSet<TEntity>属性的派生类型一起使用,代表要持久保存的对象。
    • 若从派生上下文中调用无参数的DBContext构造函数,则可使用派生上下文的名称在配置文件中查找连接字符串,如果未找到任何连接字符串,则将名称传递给在DataBase类上注册的DefaultConnectionFactory.
    • 默认情况下上下文管理连接数据库,根据需要它会打开和关闭连接
    • 上下文不是线程安全的

    2.生命周期

    在创建实例时上下文的生命周期就开始和结束,该实例可处置或垃圾收集,所以通常使用Using关键字进行资源的释放。

    3.相关操作

    1)      实体框架关系定义:在Model模型层在A类中定义一个关于Virtual关键字的外键来

    2)      创建代理

    禁止创建代理:设置DbContext.Configuration.ProxyCreationEnabled=false;

    显示创建代理实例:可延迟加载或代理跟踪

         using (var context = new BloggingContext())

    {var blog = context.Blogs.Create();

    var admin = context.Users.Create<Administrator>();}

    从代理类型获取实际实体类型:通过ObjectContext中的GetObjectType方法

    using (var context = new BloggingContext())

    {var blog = context.Blogs.Find(1);

    var entityType = ObjectContext.GetObjectType(blog.GetType()); }

    4.DBContext类的重载方法OnModelCreating方法

    一个被保护的虚方法,当模型被初始化时进行的锁定配置,如:protected virtual void OnModelCreating(DbModelBuilder modelBuilder);通过该方法对数据库或数据库表进行重新配置。

  • 相关阅读:
    搜索条件中的模式匹配,及包含关键字条件匹配
    Makefile用法,详细到让人吐。
    循序渐进实现仿QQ界面(三):界面调色与控件自绘
    VC 多线程编程
    用UDL快速生成一个数据库连接字符串。
    VC CMarkup所有方法说明
    VC判断控件是否按钮。
    学习笔记(一)
    libvirt0.8.2安装(方法一)
    centos中kvm网桥的设置
  • 原文地址:https://www.cnblogs.com/Terrece/p/6860284.html
Copyright © 2011-2022 走看看