本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处

EF中我们常用的是DbContext作为上下文,如果要想获取元数据等信息还是要用到ObjectContext这个类。

这里提供了两者互相转换的方法,如下。从代码中我们也会发现,DbContext是ObjectContext中的一部分属性方法构成的

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Core.Mapping;
using System.Data.Entity.Core.Metadata.Edm;
using System.Data.Entity.Core.Objects;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Text;
using System.Threading.Tasks; public static class DbContextExtension
{ public static DbContext GetDbContext(this ObjectContext objectContext)
{
return new DbContext(objectContext, true);
} public static ObjectContext GetObjectContext(this DbContext dbContext)
{
ObjectContext context = ((IObjectContextAdapter)dbContext).ObjectContext;
return context;
}
}

EntityFramework进阶(一)- DbContext与ObjectContext互转的更多相关文章

  1. EntityFramework进阶(二)- DbContext预热

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 在DbContext首次调用的时候,会很慢,甚至会有5,6秒的等待,通常称为冷查询.再次调用的时候,几毫秒就能请 ...

  2. DbContext 和ObjectContext两者的区别

    http://blog.csdn.net/lvjin110/article/details/24642911 ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式 ...

  3. DbContext 和 ObjectContext两者的区别

    ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式.这是两者最根本的区别. 同时两者之间可以相互转换: 下面给出转换的例子 1.DbContext转为Objec ...

  4. EntityFramework进阶(三)- 根据IQueryable获取DbContext

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 有时候我们要通过IQueryable获取所在的DbContext信息,这是完全可以的. 以下代码从个人开源框架中 ...

  5. EntityFramework中的DbContext使用疑点说明

    1.DbContext怎么在Asp.mvc中使用? public class Repository { //实例化EF容器:有弊端.一个线程里可能会创建多个DbContext //DbContext ...

  6. DbContext 和ObjectContext

    近日学习新知识,用到CallContext数据槽,一直使用ObjectContext 但同时又在学习EF CodeFirst,上下文定义使用的 DbContext 这时问题来了,如何把DbContex ...

  7. EntityFramework 学习 一 DbContext

    上一节中EDM自动生成SchoolEntities类,该类继承DbContext EntityFramework4.1之前的版本,EDM生成的类继承ObjectContext,使用ObjectCont ...

  8. EntityFramework进阶(五)- 分页

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 我们创建分页信息类CommonPagedList,包含了字段总条数,总页数,当前页码,页大小,当前页数据. us ...

  9. EntityFramework进阶(四)- 实现批量新增

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 我们可以结合Ado.Net的SqlBulkCopy实现SqlServer数据库的批量新增,其他类型的数据库的批量 ...

随机推荐

  1. 代替ESXI的虚拟机解决方案proxmox

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/matengbing/article/de ...

  2. python声明类时继承不继承object类的区别

    不加的叫做经典类或旧式类,但是现在python3的类都默认是继承了object的,所以可写可不写 下面举个例子说明: 首先说明下__class__功能与用法: __class__功能和type()函数 ...

  3. asp中出现“错误 '80040e14' FROM 子句语法错误”原因

    当你的sql语句中出现 “错误 '80040e14' FROM 子句语法错误.”错误时,请注意了,那有可能是你的表名的命名不规范造成的,比如你的表名是“user”那么这杨的表名是不行的,那么在sql语 ...

  4. 如何解决Access操作或事件已被禁用模式阻止

    操作或事件已被禁用模式阻止.本来是Access安全设置的一部分,可以防止一些危险性的宏自动运行损坏数据,但是如果是自己在设计或是修改Access数据库的时候,这个就比较烦人了,一次次的提示,每次都需要 ...

  5. vscode片段

    参考资料 https://blog.csdn.net/maokelong95/article/details/54379046 "狂客注释": { "prefix&quo ...

  6. break 和 continue 的用法

    break 是结束循环 continue 是结束本次循环,接下下一个循环

  7. elasticsearch in语句和not in语句

    sql语句示例: select * from table where t_id in (1,2,3,4) php代码示例: $search_query = [ "bool" =&g ...

  8. 【Leetcode_easy】844. Backspace String Compare

    problem 844. Backspace String Compare solution1: class Solution { public: bool backspaceCompare(stri ...

  9. 关于Js异常

    一.Javascript的异常处理机制 当javascript代码中出现错误的时候,js引擎就会根据js的调用栈逐级寻找对应的catch,如果没有找到相应的catch handler或catch ha ...

  10. 修正线性单元(Rectified linear unit,ReLU)

    修正线性单元(Rectified linear unit,ReLU) Rectified linear unit 在神经网络中,常用到的激活函数有sigmoid函数f(x)=11+exp(−x).双曲 ...