1+ using FreeSql . Internal . Model ;
2+ using System ;
3+ using System . Collections . Generic ;
4+ using System . Data . Common ;
5+ using System . Linq . Expressions ;
6+ using System . Threading ;
7+ using System . Threading . Tasks ;
8+
9+ namespace FreeSql
10+ {
11+ public interface IUpdateJoin < T1 , T2 >
12+ {
13+ /// <summary>
14+ /// 指定事务对象
15+ /// </summary>
16+ /// <param name="transaction"></param>
17+ /// <returns></returns>
18+ IUpdateJoin < T1 , T2 > WithTransaction ( DbTransaction transaction ) ;
19+ /// <summary>
20+ /// 指定事务对象
21+ /// </summary>
22+ /// <param name="connection"></param>
23+ /// <returns></returns>
24+ IUpdateJoin < T1 , T2 > WithConnection ( DbConnection connection ) ;
25+ /// <summary>
26+ /// 命令超时设置(秒)
27+ /// </summary>
28+ /// <param name="timeout"></param>
29+ /// <returns></returns>
30+ IUpdateJoin < T1 , T2 > CommandTimeout ( int timeout ) ;
31+
32+ /// <summary>
33+ /// 设置列的固定新值,Set(a => a.Name, "newvalue")
34+ /// </summary>
35+ /// <typeparam name="TMember"></typeparam>
36+ /// <param name="column">lambda选择列</param>
37+ /// <param name="value">新值</param>
38+ /// <returns></returns>
39+ IUpdateJoin < T1 , T2 > Set < TMember > ( Expression < Func < T1 , TMember > > column , TMember value ) ;
40+ /// <summary>
41+ /// 设置列的固定新值,Set(a => a.Name, "newvalue")
42+ /// </summary>
43+ /// <typeparam name="TMember"></typeparam>
44+ /// <param name="condition">true 时生效</param>
45+ /// <param name="column">lambda选择列</param>
46+ /// <param name="value">新值</param>
47+ /// <returns></returns>
48+ IUpdateJoin < T1 , T2 > SetIf < TMember > ( bool condition , Expression < Func < T1 , TMember > > column , TMember value ) ;
49+ /// <summary>
50+ /// 设置列的联表值,格式:<para></para>
51+ /// Set((a, b) => a.Clicks == b.xxx)<para></para>
52+ /// Set((a, b) => a.Clicks == a.Clicks + 1)
53+ /// </summary>
54+ /// <param name="exp"></param>
55+ /// <returns></returns>
56+ IUpdateJoin < T1 , T2 > Set ( Expression < Func < T1 , T2 , bool > > exp ) ;
57+ /// <summary>
58+ /// 设置列的联表值,格式:<para></para>
59+ /// Set((a, b) => a.Clicks == b.xxx)<para></para>
60+ /// Set((a, b) => a.Clicks == a.Clicks + 1)
61+ /// <para></para>
62+ /// </summary>
63+ /// <param name="condition">true 时生效</param>
64+ /// <param name="exp"></param>
65+ /// <returns></returns>
66+ IUpdateJoin < T1 , T2 > SetIf ( bool condition , Expression < Func < T1 , T2 , bool > > exp ) ;
67+ /// <summary>
68+ /// 设置值,自定义SQL语法,SetRaw("title = @title", new { title = "newtitle" })<para></para>
69+ /// 提示:parms 参数还可以传 Dictionary<string, object>
70+ /// </summary>
71+ /// <param name="sql">sql语法</param>
72+ /// <param name="parms">参数</param>
73+ /// <returns></returns>
74+ IUpdateJoin < T1 , T2 > SetRaw ( string sql , object parms = null ) ;
75+
76+ /// <summary>
77+ /// lambda表达式条件,仅支持实体基础成员(不包含导航对象)
78+ /// </summary>
79+ /// <param name="exp">lambda表达式条件</param>
80+ /// <returns></returns>
81+ IUpdateJoin < T1 , T2 > Where ( Expression < Func < T1 , T2 , bool > > exp ) ;
82+ /// <summary>
83+ /// lambda表达式条件,仅支持实体基础成员(不包含导航对象)
84+ /// </summary>
85+ /// <param name="condition">true 时生效</param>
86+ /// <param name="exp">lambda表达式条件</param>
87+ /// <returns></returns>
88+ IUpdateJoin < T1 , T2 > WhereIf ( bool condition , Expression < Func < T1 , T2 , bool > > exp ) ;
89+ /// <summary>
90+ /// 原生sql语法条件,Where("id = @id", new { id = 1 })<para></para>
91+ /// 提示:parms 参数还可以传 Dictionary<string, object>
92+ /// </summary>
93+ /// <param name="sql">sql语法条件</param>
94+ /// <param name="parms">参数</param>
95+ /// <returns></returns>
96+ IUpdateJoin < T1 , T2 > Where ( string sql , object parms = null ) ;
97+
98+ /// <summary>
99+ /// 禁用全局过滤功能,不传参数时将禁用所有
100+ /// </summary>
101+ /// <param name="name">零个或多个过滤器名字</param>
102+ /// <returns></returns>
103+ IUpdateJoin < T1 , T2 > DisableGlobalFilter ( params string [ ] name ) ;
104+
105+ /// <summary>
106+ /// 设置表名
107+ /// </summary>
108+ /// <param name="tableName"></param>
109+ /// <returns></returns>
110+ IUpdateJoin < T1 , T2 > AsTable ( string tableName ) ;
111+ /// <summary>
112+ /// 返回即将执行的SQL语句
113+ /// </summary>
114+ /// <returns></returns>
115+ string ToSql ( ) ;
116+ /// <summary>
117+ /// 执行SQL语句,返回影响的行数
118+ /// </summary>
119+ /// <returns></returns>
120+ int ExecuteAffrows ( ) ;
121+
122+ #if net40
123+ #else
124+ Task < int > ExecuteAffrowsAsync ( CancellationToken cancellationToken = default ) ;
125+ #endif
126+ }
127+ }
0 commit comments