分享

EF 系统学习 - DCBI - 博客园

 唐伯龙 2011-06-10

EF 系统学习

2011-03-24 01:52 by DCBI, 90 visits, 收藏, 编辑

   EF中几个重要的,如ObjectContext、ObjectQuery、、EntityClient、Linq to Entity以及ESQL相关处理。而linq只是一个技术的应用。

   EF并发冲突【Fixed】,并发处理;继承,多表关联;事务,存储过程处理;复杂类型处理。

   具体项目应用过程中队EF的应用;效率,解耦;还有就是EF优化---缓存。GetObjectByKey、延迟加载、CompiledQuery。。。。

   linq to entity【objectcontext】与linq to sql【datacontext】及entityclient

 

   

System.Data.Common.DbTransaction与System.Transactions.TransactionScope

TransactionScope可解决[死锁(两个Context使用DbTransaction)]

可解决死锁TransactionScope代码段;

 
using (System.Transactions.TransactionScope tc = new TransactionScope()) { try{ myContext context1 = new myContext(); DBItem item1 = new DBItem(); item1.ItemID = "w"; item1.ItemMatter = "wxwinter"; context1.AddObject("DBItem", item1); context1.SaveChanges(); myContext context2 = new myContext(); DBItem item2 = new DBItem(); item2.ItemID = "w"; item2.ItemMatter = "wxd"; context2.AddObject("DBItem", item2); context2.SaveChanges(); tc.Complete(); } catch{ } }

DbTransaction代码段:

myContext context1 = new myContext(); DBItem item1 = new DBItem(); item1.ItemID = "w"; item1.ItemMatter = "wxwinter"; context1.AddObject("DBItem", item1); if (context1.Connection.State != ConnectionState.Open) { context1.Connection.Open(); } System.Data.Common.DbTransaction tran = context1.Connection.BeginTransaction(); context1.SaveChanges(); try{ myContext context2 = new myContext(); DBItem item2 = new DBItem(); item2.ItemID = "w"; item2.ItemMatter = "wxd"; context2.AddObject("DBItem", item2); context2.SaveChanges(); tran.Commit(); } catch{ tran.Rollback(); }
分类: NET

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多