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 ...
随机推荐
- nginx编译安装新模块
nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so 这里以安装第三方ngx_http_google_filter_module模块为例 下载第三方扩展模块ngx_ht ...
- PHP 框架Laravel Eloquent 实现身份验证
PHP自从5.3后似乎又热度又回升, 最近了解了一下PHP框架之一Laravel, 最近最新的版本已经是4.3 基本的结构这里不讲, 要了解可以在这里看文档 http://v4.golaravel. ...
- SQL SERVER 2000 如何提高大数据筛选GROUP BY 的效率
数据库有83W条记录,本想计算20180101之后的每天赔付情况,故写了以下SQL语句: SELECT 起保时间,sum(赔付金额) as 日赔付 FROM maindata WHERE 起保时间&g ...
- 复习java的例子(第一天)
1. 编写程序:从键盘上读入一个学生成绩, 存放在变量score中,根据score的值输出其对应的成绩等级: score>=90 等级: A 70=<score<90 等级: B 6 ...
- asp.net mvc学习入门
MVC是什么? M: Model就是我们获取的网页需要的数据 V: View就是我们的aspx页面,注意这是一个不包含后台代码文件的aspx页面.(其实带有.asp.cs文件也不会有编译错误,但是这样 ...
- 【sqli-labs】 less12 POST - Error Based - Double quotes- String-with twist (基于错误的双引号POST型字符型变形的注入)
加个双引号 通过报错信息猜测SQL语句 , 将括号闭合掉,通过注释后面的条件登录
- Python中字典的相关操作
1. Python类似于Java中的哈希表,只是两种语言表示的方式是不一样的,Python中的字典定义如下: 在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种 ...
- codevs 2602 最短路径问题——良心题解
2602 最短路径问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 平面上有n个点(n<=100),每个点的坐标均在- ...
- html_entity_decode()、空格、 乱码问题
普通 ASCII 码空格为 32,但是浏览器会对普通空格进行自动归并,也就是如果你输入10个 0x20 的空格在HTML页面里面,可能会被合并成一个空格. 如果想要一致的呈现多个空格,就要用到 编码标 ...
- OpenCV实现USM锐化与测试
OpenCV实现USM锐化 [转]http://www.programdevelop.com/4964391/ USM (Unsharp masking) is a common operation ...