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 ...
随机推荐
- TCP/IP详解(一)
SYN中的MSS选项是告诉对端,本端在本地连接的每个TCP分节中愿意接收的最大数据量.发送端TCP使用接收端的MSS值作为发送分节的最大大小. TCP半关闭使用的情况较少,可用于通知对端本端数据已输入 ...
- MySql c#通用类 转
using System;using System.Data;using System.Configuration;using System.Collections.Generic;using Sys ...
- VMware中linux安装jdk
首先安装linux系统 如何将jdk安装包复制到linux中不做概述,可以使用xftp工具,或者Xshell,或者其他方式. 1.下载jdk包:本章使用的为后缀为tar.gz的文件(不需要安装),如j ...
- poj2376 Cleaning Shifts 区间贪心
题目大意: (不说牛了) 给出n个区间,选出个数最少的区间来覆盖区间[1,t].n,t都是给出的. 题目中默认情况是[1,x],[x+1,t]也是可以的.也就是两个相邻的区间之间可以是小区间的右端与大 ...
- java ---书写自己的名字
public class hello { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println(& ...
- Android测试写入文本Log
写入本地SD卡: @SuppressLint("SdCardPath") public void writeFileSdcard(String fileName, String m ...
- jsp 判断当前时间是否符合设置的时间条件
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 基于分布式框架 Jepsen 的 X-Cluster 正确性测试
转自:https://mp.weixin.qq.com/s/iOe1VjG1CrHalr_I1PKdKw 原创 2017-08-27 严祥光(祥光) 阿里巴巴数据库技术 1 概述 AliSQL X-C ...
- dev的汉化
dev汉化网上有很多介绍.自己感觉还是用ini文件,用Localization Component来的简单方便. 但是根据其16.1.6的demo死活出问题.原因是ini文件的编码问题.转换到位自然就 ...
- JVM学习-jvm结构(一)
java是跨平台的语言.一次编译多端使用.究竟是如何实现的呢 1.首先编译器会将java 文件编译成class文件.然后在不同的平台使用对应的虚拟机.不同虚拟机的内装载系统将class文件转换平台能执 ...