平台培训视频04-mcs.framework dev data_第1页
平台培训视频04-mcs.framework dev data_第2页
平台培训视频04-mcs.framework dev data_第3页
平台培训视频04-mcs.framework dev data_第4页
平台培训视频04-mcs.framework dev data_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DataAccess数据访问部分数据库连接和事务管理Sql语句构造器ORMapping数据访问部分基本查询语句Database db = DatabaseFactory.Create(DATextDB);Console.WriteLine(db.ExecuteScalar(CommandType.Text, SELECT COUNT(*) FROM USERS);疑问?连接名称是怎么定义的?谁负责Open和Close连接?更复杂的查询方式怎么实现?数据访问部分.Net Framework 2.0的事务管理提供本地事务管理,必要时使用DTC不需要编写Enterprise Service(Com+

2、)组件就可以支持分布式事务提供了隐式和显式两种方式使用事务数据访问部分隐式地使用事务using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required) Database db = DatabaseFactory.CreateDatabase(pubs); string mand = SELECT * FROM authors; DataSet ds = db.ExecuteDataSet( mand( mand); plete();线程上下文中保存Transaction对象。通过System

3、.Transactions.Transaction.Current数据访问部分void DoRootOP() using(TrsactionScope ts = new TrsactionScope() DoSubOP(); void DoSubOP() using(TrsactionScope ts = new TrsactionScope() ; 嵌套地使用隐式事务数据访问部分new TransactionScope(TransactionScopeOption.Required);TransactionScopeOptionsRequiredRequiresNewSuppress没有类似

4、于Com+的Supported?隔离度Chaos, mitted, mitted,RepeatableRead,Serializable,Snapshot,Unspecified数据访问部分.Net Framework显示地使用事务Transaction tx = new CommittableTransaction();SqlConnection myConnection = new SqlConnection(server=(local)SQLExpress;database=northwind.); mand mand = new mand();myConnection.Open();m

5、yConnection.EnlistTransaction(tx); /手工Enlisttry . mit();catch() tx.Rollback(); finally myConnection.Close();数据访问部分.Net Framework显示地使用事务CommittableTransaction从Transaction类派生,扩展了实现了Commit方法Transaction类没有Commit,只有Rollback可序列化,可以跨越各种边界支持异步事务提交生成以后,需要手工执行Transaction.Current = new CommittableTransaction()

6、;数据访问部分.Net Framework在多线程中使用事务传递给其它线程的Transaction对象必须是Clone的(See Sample Code)Transaction.Current.DependentClone( plete)数据访问部分TransactionScope的问题事务不是无代价的,可能会从本地事务提升到分布式事务using(TransactionScope ts = new TrsactionScope() DoInsert(“A”);DoInsert(“B”); plete(); void DoInsert(string data)DbConnection conn

7、= new SqlConnection(“connA”);conn.Open();数据访问部分使用DbContext管理连接using (DbContext context = DbContext.GetContext(DATextDB)Database db = DatabaseFactory.Create(DATextDB);db.ExecuteScalar(CommandType.Text,SELECT COUNT(*) FROM USERS);db.ExecuteScalar(CommandType.Text,“INSERT INTO USERS(USER_ID) VALUES(123

8、4);数据访问部分工作流组件消息处理组件其他应用组件业务组件数据库事务控制底层数据访问工具数据访问线程上下文存储在线程上下文中的连接控制对象数据库连接管理数据访问部分不会启动分布式事务using (DbContext context = DbContext.GetContext(DATextDB)using(TrsactionScope ts = new TrsactionScope() DoInsert(“A”);DoInsert(“B”); plete(); void DoInsert(string data)Database db = DatabaseFactory.Create(DAT

9、extDB);db.ExecuteScalar(CommandType.Text,“INSERT INTO USERS(USER_ID) VALUES(1234);数据访问部分会启动分布式事务using (DbContext context = DbContext.GetContext(“connA”)using(TrsactionScope ts = new TrsactionScope() DoInsert(“connA”);DoInsert(“connB”); plete(); void DoInsert(string connName)Database db = DatabaseFac

10、tory.Create(connName);db.ExecuteScalar(CommandType.Text,“INSERT INTO USERS(USER_ID) VALUES(1234);Data Source=.;Integrated Security=True;User Instance=True; Enlist=false providerName=System.Data.SqlClient数据访问部分基础组件库的事务管理使用TransactionScopeFactory创建ts缺省的隔离度是 mited(与new TransactionScope()不同)可以通过配置信息修改缺省隔离度和事务超时时间连接什么时候关闭?数据访问部分Sql语句的生成语句构造器(InsertSqlClauseBuilder,Update,Where,OrderBy,In)基本构造器(TSqlBuilder,PlSqlBuilder)ORMapping数据访问部分Sql语句构造器数据访问部分ISqlBuilder的功能数据访问部分Sql语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论