ADO.NET Entity Framework Extensions
一、情景
如果你的项目中有返回多结果集的存储过程。
如果你的项目要和老项目中的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的更多相关文章
- ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)
ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求 ...
- 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log
ADO.NET Entity Framework ToTraceString //输出单条查询 DbContext.Database.Log //这里有详细的日志
- ADO.NET Entity Framework
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案, 早期被称为 ObjectSpace,现已经包含在 V ...
- Microsoft SQL Server Compact 4.0&&ADO.NET Entity Framework 4.1&&MVC3
最近重新查看微软MvcMusicStore-v3.0的源代码,发现忽略了很多重要的东西,特别是数据访问那一部分. 首先Microsoft SQL Server Compact 4.0 详细的介绍和下载 ...
- 精进不休 .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 ...
- ADO.NET Entity Framework(EF)
ylbtech-Miscellaneos: ADO.NET Entity Framework(EF) A,返回顶部 1, ADO.NET Entity Framework 是微软以 ADO.NET 为 ...
- 读书笔记之ado.net entity framework
提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code Fi ...
- ADO.NET Entity Framework学习笔记(3)ObjectContext
ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转] 说明 ObjectContext提供了管理数据的功能 Context操作数据 AddObject ...
- Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF
Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF Entity FrameWork的特点 1.支持多种数据库(MSSQL.Oracle.M ...
随机推荐
- 【DP悬线法】奶牛浴场
虽然还是悬线法,但是这道题可不能轻易地套模板了,而是要换一种思路,横着扫一遍,竖着扫一遍,时间复杂度依旧是O(n^2),然而空间复杂度有一定的优化 如果用原来的方法,显然时间空间都会炸(如果你想用ma ...
- B - Bit++
Problem description The classic programming language of Bitland is Bit++. This language is so peculi ...
- java的原子变量
java的原子变量类似c++的InterlockedDecrement()操作.其实就是在进行算术时,把整个算式看为一个整体,并且保证同一时间只计算该式子一次. 它的用途比如,多个线程可能会调用某个函 ...
- WEB笔记-5、字体和文本
字体样式 font-family font-size font-weight font-style font-variant font(简写) 常用字体: serif,衬线字体,每个字符笔画末端会有装 ...
- DataTable如何去除重复的行
两种方法1 数据库直接去除重复select distinct * from 表名去除了重复行distinct 2 对 DataTable直接进行操作DataTable dt=db.GetDt(&quo ...
- 分割字符串 ExtractStrings
//分割字符串 ExtractStrings var s: String; List: TStringList; begin s := 'about: #delphi; #pascal, progra ...
- python3 str类型
python3 的str就是unicode,只有encode函数,调用encode返回的是bytes. bytes只有decode函数,调用decode返回的是str.
- asp.net mvc学习入门
MVC是什么? M: Model就是我们获取的网页需要的数据 V: View就是我们的aspx页面,注意这是一个不包含后台代码文件的aspx页面.(其实带有.asp.cs文件也不会有编译错误,但是这样 ...
- 虚拟DOM介绍
[转自]:https://www.jianshu.com/p/616999666920 为什么需要虚拟DOM 先介绍浏览器加载一个HTML文件需要做哪些事,帮助我们理解为什么我们需要虚拟DOM.web ...
- 08.Web服务器-4.Web服务器动态资源请求
1 浏览器请求动态页面过程 2 WSGI 怎么在你刚建立的Web服务器上运行一个Django应用和Flask应用,如何不做任何改变而适应不同的web架构呢? 在以前,选择 Python web 架构会 ...