From 5b664ac5fc241b835826fe3cb45d03bbe27558d2 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Mon, 25 Apr 2022 17:08:05 +0800 Subject: [PATCH] update --- ADO.md | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/ADO.md b/ADO.md index ec3074a..5086be9 100644 --- a/ADO.md +++ b/ADO.md @@ -68,4 +68,37 @@ fsql.Ado.CommandFluent("dbo.GetICMaxNum") .ExecuteNonQuery(); //.Query() 或者 .ExecuteDataTable() 或者 ... Console.WriteLine(p2.Value); -``` \ No newline at end of file +``` + +## Ado.net 扩展方法 + +提供了类似 Dapper 的使用方法,FreeSql 增加了 IDbConnection/IDbTransaction 对象的扩展方法 Select/Insert/Update/Delete 实现 CRUD。 + +```csharp +using FreeSql; + +using (var conn = new SqlConnection(...)) +{ + //IFreeSql fsql = conn.GetIFreeSql(); + //fsql.CodeFirst.IsNoneCommandParameter = true; + //fsql.CodeFirst.IsSyncStructureToUpper = true; + //fsql.Aop.CommandBefore += (_, e) => Trace.WriteLine(e.Command.CommandText); + //以上整个程序只需要设置一次 + + conn.Select().Where(...).ToList(); + + conn.Insert(new T {}).ExecuteAffrows(); + conn.Update().SetSource(new T {}).ExecuteAffrows(); + conn.InsertOrUpdate().SetSource(new T {}).ExecuteAffrows(); + + conn.Delete().Where(...).ExecuteAffrows(); +} +``` + +- 每个 SqlConnection GetFreeSql() 返回的 IFreeSql 实例相同; +- 可以对 fsql 设置 Aop 事件,比如监视 SQL; +- IFreeSql 自身的成员 IDbFirst、Transaction 不可用; + +利用本功能可以快速将 FreeSql 使用到项目中,只需要处理好实体类的特性。 + +提示:FreeSql 兼容 EFCore 99% 的实体特性 \ No newline at end of file