update ForUpdate tests

This commit is contained in:
28810 2019-12-14 12:21:55 +08:00
parent 97c1a31a67
commit f162520202
14 changed files with 186 additions and 0 deletions

View File

@ -110,6 +110,13 @@
清空状态数据 清空状态数据
</summary> </summary>
</member> </member>
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
根据 lambda 条件删除数据
</summary>
<param name="predicate"></param>
<returns></returns>
</member>
<member name="M:FreeSql.DbSet`1.Add(`0)"> <member name="M:FreeSql.DbSet`1.Add(`0)">
<summary> <summary>
添加 添加

View File

@ -1603,6 +1603,10 @@ namespace FreeSql.Tests.MySqlConnector
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.mysql; var orm = g.mysql;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1530,6 +1530,10 @@ namespace FreeSql.Tests.Odbc.Dameng
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.dameng; var orm = g.dameng;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1341,6 +1341,10 @@ namespace FreeSql.Tests.Odbc.Default
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.odbc; var orm = g.odbc;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1614,6 +1614,10 @@ namespace FreeSql.Tests.Odbc.MySql
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.mysql; var orm = g.mysql;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1530,6 +1530,10 @@ namespace FreeSql.Tests.Odbc.Oracle
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.oracle; var orm = g.oracle;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1586,6 +1586,10 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.pgsql; var orm = g.pgsql;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1480,6 +1480,10 @@ namespace FreeSql.Tests.Odbc.SqlServer
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.sqlserver; var orm = g.sqlserver;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1645,6 +1645,10 @@ namespace FreeSql.Tests.MySql
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.mysql; var orm = g.mysql;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1530,6 +1530,10 @@ namespace FreeSql.Tests.Oracle
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.oracle; var orm = g.oracle;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1603,6 +1603,10 @@ namespace FreeSql.Tests.PostgreSQL
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.pgsql; var orm = g.pgsql;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1548,6 +1548,10 @@ namespace FreeSql.Tests.SqlServer
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.sqlserver; var orm = g.sqlserver;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -1678,6 +1678,10 @@ namespace FreeSql.Tests.Sqlite
public void ForUpdate() public void ForUpdate()
{ {
var orm = g.sqlite; var orm = g.sqlite;
Assert.Equal("安全起见,请务必在事务开启之后,再使用 ForUpdate",
Assert.Throws<Exception>(() => orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToList())?.Message);
orm.Transaction(() => orm.Transaction(() =>
{ {
var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", ""); var sql = orm.Select<ToUpd1Pk>().ForUpdate().Limit(1).ToSql().Replace("\r\n", "");

View File

@ -2125,6 +2125,137 @@
<param name="parms"></param> <param name="parms"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{System.Data.Common.DbDataReader,System.Threading.Tasks.Task},System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
查询若使用读写分离查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
</summary>
<param name="readerHander"></param>
<param name="cmdType"></param>
<param name="cmdText"></param>
<param name="cmdParms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{System.Data.Common.DbDataReader,System.Threading.Tasks.Task},System.String,System.Object)">
<summary>
查询ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 })
</summary>
<param name="cmdText"></param>
<param name="parms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteArrayAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
查询
</summary>
<param name="cmdText"></param>
<param name="cmdParms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteArrayAsync(System.String,System.Object)">
<summary>
查询ExecuteArrayAsync("select * from user where age > @age", new { age = 25 })
</summary>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.ExecuteDataSetAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
查询
</summary>
<param name="cmdText"></param>
<param name="cmdParms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteDataSetAsync(System.String,System.Object)">
<summary>
查询ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 })
</summary>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.ExecuteDataTableAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
查询
</summary>
<param name="cmdText"></param>
<param name="cmdParms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteDataTableAsync(System.String,System.Object)">
<summary>
查询ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 })
</summary>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.ExecuteNonQueryAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
在【主库】执行
</summary>
<param name="cmdType"></param>
<param name="cmdText"></param>
<param name="cmdParms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteNonQueryAsync(System.String,System.Object)">
<summary>
在【主库】执行ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 })
</summary>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.ExecuteScalarAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
在【主库】执行
</summary>
<param name="cmdType"></param>
<param name="cmdText"></param>
<param name="cmdParms"></param>
</member>
<member name="M:FreeSql.IAdo.ExecuteScalarAsync(System.String,System.Object)">
<summary>
在【主库】执行ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 })
</summary>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.QueryAsync``1(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
执行SQL返回对象集合QueryAsync&lt;User&gt;("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
</summary>
<typeparam name="T"></typeparam>
<param name="cmdType"></param>
<param name="cmdText"></param>
<param name="cmdParms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.QueryAsync``1(System.String,System.Object)">
<summary>
执行SQL返回对象集合QueryAsync&lt;User&gt;("select * from user where age > @age", new { age = 25 })
</summary>
<typeparam name="T"></typeparam>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.QueryAsync``2(System.Data.CommandType,System.String,System.Data.Common.DbParameter[])">
<summary>
执行SQL返回对象集合Query&lt;User&gt;("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
</summary>
<typeparam name="T1"></typeparam>
<param name="cmdType"></param>
<param name="cmdText"></param>
<param name="cmdParms"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IAdo.QueryAsync``2(System.String,System.Object)">
<summary>
执行SQL返回对象集合Query&lt;User&gt;("select * from user where age > @age; select * from address", new { age = 25 })
</summary>
<typeparam name="T1"></typeparam>
<param name="cmdText"></param>
<param name="parms"></param>
<returns></returns>
</member>
<member name="P:FreeSql.IAop.ParseExpression"> <member name="P:FreeSql.IAop.ParseExpression">
<summary> <summary>
可自定义解析表达式 可自定义解析表达式