一、情景

如果你的项目中有返回多结果集的存储过程。

如果你的项目要和老项目中的ADO.Net共用事务。

如果你要动态的创建数据库的表。

但是你还是希望使用Entity Framework。那么继续往下看吧。

二、ADO.NET Entity Framework Extensions(下载地址)

1、引用EFExtensions.dll文件。

2、添加 using Microsoft.Data.Extensions; 的声明。

三、EFExtensions执行T-SQL语句

public void ExecuteSQL(string sql)
{
using (DBEntities db = new DBEntities())
{
using (db.Connection.CreateConnectionScope())
{
var cmd = db.CreateStoreCommand("update Orders set Freight=8 where OrderID=10292", CommandType.Text); cmd.ExecuteNonQuery();
}
}
}
 

四、EFExtensions执行存储过程

public DataSet ExecuteProcedure()
{
using (DBEntities db = new DBEntities())
{
var cmd = db.CreateStoreCommand("CustOrdersOrders", CommandType.StoredProcedure, new SqlParameter("CustomerID", "ALFKI")); SqlDataAdapter da = new SqlDataAdapter(cmd as SqlCommand);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
 

五、EFExtensions执行T-SQL语句获得实体集

public IEnumerable<Orders> GetSQL()
{
using (DBEntities db = new DBEntities())
{
return db.CreateStoreCommand("select * from Orders", CommandType.Text).Materialize<Orders>();
}
}
 

六、让EF与ADO.Net共享事务

public void UseSameTran()
{
using (var tran = new TransactionScope(TransactionScopeOption.Required))
{
using (DBEntities db = new DBEntities())
{
using (db.Connection.CreateConnectionScope())
{
Orders order = db.Orders.FirstOrDefault(o => o.OrderID == );
order.Freight = ;
db.SaveChanges(); var cmd = db.CreateStoreCommand("update Orders set Freight=8 where OrderID=10292", CommandType.Text); cmd.ExecuteNonQuery();
tran.Complete();
}
}
}
}
 

七、查看Linq的T-SQL语句

var q = from p in context.Products
where p.ProductName.StartsWith("Foo")
select p; // before
string commandText = ((ObjectQuery<Product>)q).ToTraceString(); // after
string commandText = q.ToTraceString();
 

八、结束语

用EF做项目,上面这些也都是容易碰到的不太好解决的问题。Entity Framework Extensions都为我们解决了。

在下载的实例中还有一些其他的应用。后面的就靠各位去发掘了吧。

ADO.NET Entity Framework Extensions的更多相关文章

  1. ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)

    ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求 ...

  2. 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log

    ADO.NET Entity Framework ToTraceString  //输出单条查询 DbContext.Database.Log  //这里有详细的日志

  3. ADO.NET Entity Framework

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案, 早期被称为 ObjectSpace,现已经包含在 V ...

  4. Microsoft SQL Server Compact 4.0&&ADO.NET Entity Framework 4.1&&MVC3

    最近重新查看微软MvcMusicStore-v3.0的源代码,发现忽略了很多重要的东西,特别是数据访问那一部分. 首先Microsoft SQL Server Compact 4.0 详细的介绍和下载 ...

  5. 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性

    [索引页][源码下载] 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性 作者:weba ...

  6. ADO.NET Entity Framework(EF)

    ylbtech-Miscellaneos: ADO.NET Entity Framework(EF) A,返回顶部 1, ADO.NET Entity Framework 是微软以 ADO.NET 为 ...

  7. 读书笔记之ado.net entity framework

    提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code Fi ...

  8. ADO.NET Entity Framework学习笔记(3)ObjectContext

    ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转]   说明 ObjectContext提供了管理数据的功能 Context操作数据 AddObject ...

  9. Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF

    Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF Entity FrameWork的特点 1.支持多种数据库(MSSQL.Oracle.M ...

随机推荐

  1. nginx编译安装新模块

    nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so 这里以安装第三方ngx_http_google_filter_module模块为例 下载第三方扩展模块ngx_ht ...

  2. PHP 框架Laravel Eloquent 实现身份验证

    PHP自从5.3后似乎又热度又回升, 最近了解了一下PHP框架之一Laravel, 最近最新的版本已经是4.3  基本的结构这里不讲, 要了解可以在这里看文档 http://v4.golaravel. ...

  3. SQL SERVER 2000 如何提高大数据筛选GROUP BY 的效率

    数据库有83W条记录,本想计算20180101之后的每天赔付情况,故写了以下SQL语句: SELECT 起保时间,sum(赔付金额) as 日赔付 FROM maindata WHERE 起保时间&g ...

  4. 复习java的例子(第一天)

    1. 编写程序:从键盘上读入一个学生成绩, 存放在变量score中,根据score的值输出其对应的成绩等级: score>=90 等级: A 70=<score<90 等级: B 6 ...

  5. asp.net mvc学习入门

    MVC是什么? M: Model就是我们获取的网页需要的数据 V: View就是我们的aspx页面,注意这是一个不包含后台代码文件的aspx页面.(其实带有.asp.cs文件也不会有编译错误,但是这样 ...

  6. 【sqli-labs】 less12 POST - Error Based - Double quotes- String-with twist (基于错误的双引号POST型字符型变形的注入)

    加个双引号 通过报错信息猜测SQL语句 , 将括号闭合掉,通过注释后面的条件登录

  7. Python中字典的相关操作

    1. Python类似于Java中的哈希表,只是两种语言表示的方式是不一样的,Python中的字典定义如下: 在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种 ...

  8. codevs 2602 最短路径问题——良心题解

    2602 最短路径问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 平面上有n个点(n<=100),每个点的坐标均在- ...

  9. html_entity_decode()、空格、&nbsp; 乱码问题

    普通 ASCII 码空格为 32,但是浏览器会对普通空格进行自动归并,也就是如果你输入10个 0x20 的空格在HTML页面里面,可能会被合并成一个空格. 如果想要一致的呈现多个空格,就要用到 编码标 ...

  10. OpenCV实现USM锐化与测试

    OpenCV实现USM锐化 [转]http://www.programdevelop.com/4964391/ USM (Unsharp masking) is a common operation ...