日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ADO.NET Entity Framework Extensions 简单应用

發(fā)布時間:2024/4/17 asp.net 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADO.NET Entity Framework Extensions 简单应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、情景

如果你的項目中有返回多結(jié)果集的存儲過程。

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

如果你要動態(tài)的創(chuàng)建數(shù)據(jù)庫的表。

但是你還是希望使用Entity Framework。那么繼續(xù)往下看吧。

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

1、引用EFExtensions.dll文件。

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

三、EFExtensions執(zhí)行T-SQL語句

view sourceprint?
01public void ExecuteSQL(string sql)
02{
03??? using (DBEntities db = new DBEntities())
04??? {
05??????? using (db.Connection.CreateConnectionScope())
06??????? {
07??????????? var cmd = db.CreateStoreCommand("update Orders set Freight=8 where OrderID=10292", CommandType.Text);
08?
09??????????? cmd.ExecuteNonQuery();
10??????? }
11??? }
12}

四、EFExtensions執(zhí)行存儲過程

?

view sourceprint?
01public DataSet ExecuteProcedure()
02{
03??? using (DBEntities db = new DBEntities())
04??? {
05??????? var cmd = db.CreateStoreCommand("CustOrdersOrders", CommandType.StoredProcedure, new SqlParameter("CustomerID", "ALFKI"));
06?
07??????? SqlDataAdapter da = new SqlDataAdapter(cmd as SqlCommand);
08??????? DataSet ds = new DataSet();
09??????? da.Fill(ds);
10??????? return ds;
11??? }
12}

五、EFExtensions執(zhí)行T-SQL語句獲得實體集

view sourceprint?
1public IEnumerable<Orders> GetSQL()
2{
3??? using (DBEntities db = new DBEntities())
4??? {
5??????? return db.CreateStoreCommand("select * from Orders", CommandType.Text).Materialize<Orders>();
6??? }
7}

六、讓EF與ADO.Net共享事務

view sourceprint?
01public void UseSameTran()
02{
03??? using (var tran = new TransactionScope(TransactionScopeOption.Required))
04??? {
05??????? using (DBEntities db = new DBEntities())
06??????? {
07??????????? using (db.Connection.CreateConnectionScope())
08??????????? {
09??????????????? Orders order = db.Orders.FirstOrDefault(o => o.OrderID == 10291);
10??????????????? order.Freight = 7;
11??????????????? db.SaveChanges();
12?
13??????????????? var cmd = db.CreateStoreCommand("update Orders set Freight=8 where OrderID=10292", CommandType.Text);
14?
15??????????????? cmd.ExecuteNonQuery();
16??????????????? tran.Complete();
17??????????? }
18??????? }
19??? }
20}

七、查看Linq的T-SQL語句

view sourceprint?
1var q = from p in context.Products
2??????? where p.ProductName.StartsWith("Foo")
3??????? select p;
4?
5// before
6string commandText = ((ObjectQuery<Product>)q).ToTraceString();
7?
8// after
9string commandText = q.ToTraceString();

八、結(jié)束語

?????? 用EF做項目,上面這些也都是容易碰到的不太好解決的問題。Entity Framework Extensions都為我們解決了。

在下載的實例中還有一些其他的應用。后面的就靠各位去發(fā)掘了吧。

轉(zhuǎn)載于:https://www.cnblogs.com/xtsjh/archive/2011/11/03/2234229.html

總結(jié)

以上是生活随笔為你收集整理的ADO.NET Entity Framework Extensions 简单应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。