- 完善 IUpdate.SetSource 组合主键的数据更新单元测试;

This commit is contained in:
28810
2020-02-24 18:03:37 +08:00
parent 05d1828884
commit 02cd7ad557
28 changed files with 375 additions and 209 deletions

View File

@@ -110,13 +110,6 @@
清空状态数据
</summary>
</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)">
<summary>
添加

View File

@@ -78,6 +78,19 @@ namespace FreeSql.Tests.MySqlConnector
Assert.Equal("UPDATE `TestEnumUpdateTb` SET `type` = 'sum211', `time` = '0001-01-01 00:00:00.000' WHERE (`id` = 0)", sql);
g.mysql.Update<TestEnumUpdateTb>().NoneParameter().SetSource(new TestEnumUpdateTb { id = (int)id, type = TestEnumUpdateTbType.biggit }).ExecuteAffrows();
Assert.Equal(TestEnumUpdateTbType.biggit, g.mysql.Select<TestEnumUpdateTb>().Where(a => a.id == id).First()?.type);
sql = g.mysql.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -48,6 +48,29 @@ namespace FreeSql.Tests.Odbc.Dameng
sql = update.SetSource(items).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE \"TB_TOPIC\" SET \"CREATETIME\" = to_timestamp('2020-01-01 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6') WHERE (\"ID\" IN (1,2,3,4,5,6,7,8,9,10))", sql);
if (g.dameng.Select<ts_source_mpk>().Where(a => a.id1 == 1 && a.id2 == 7).Any() == false)
g.dameng.Insert(new ts_source_mpk { id1 = 1, id2 = 7 }).ExecuteAffrows();
if (g.dameng.Select<ts_source_mpk>().Where(a => a.id1 == 1 && a.id2 == 8).Any() == false)
g.dameng.Insert(new ts_source_mpk { id1 = 1, id2 = 8 }).ExecuteAffrows();
sql = g.dameng.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
g.dameng.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ExecuteAffrows();
var testlist = g.dameng.Select<ts_source_mpk>().ToList();
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -50,6 +50,19 @@ namespace FreeSql.Tests.Odbc.Default
sql = update.SetSource(items).IgnoreColumns(a => a.TypeGuid).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE [tb_topic] SET [CreateTime] = '2020-01-01 00:00:00' WHERE ([Id] IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.odbc.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -78,6 +78,19 @@ namespace FreeSql.Tests.Odbc.MySql
Assert.Equal("UPDATE `TestEnumUpdateTb` SET `type` = 'sum211', `time` = '0001-01-01 00:00:00.000' WHERE (`id` = 0)", sql);
g.mysql.Update<TestEnumUpdateTb>().NoneParameter().SetSource(new TestEnumUpdateTb { id = (int)id, type = TestEnumUpdateTbType.biggit }).ExecuteAffrows();
Assert.Equal(TestEnumUpdateTbType.biggit, g.mysql.Select<TestEnumUpdateTb>().Where(a => a.id == id).First()?.type);
sql = g.mysql.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -48,6 +48,19 @@ namespace FreeSql.Tests.Odbc.Oracle
sql = update.SetSource(items).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE \"TB_TOPIC\" SET \"CREATETIME\" = to_timestamp('2020-01-01 00:00:00.000000','YYYY-MM-DD HH24:MI:SS.FF6') WHERE (\"ID\" IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.oracle.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -49,6 +49,19 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
sql = update.SetSource(items).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE \"tb_topic\" SET \"createtime\" = '2020-01-01 00:00:00.000000' WHERE (\"id\" IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.pgsql.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -51,6 +51,19 @@ namespace FreeSql.Tests.Odbc.SqlServer
sql = update.SetSource(items).IgnoreColumns(a => a.TypeGuid).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE [tb_topic] SET [CreateTime] = '2020-01-01 00:00:00.000' WHERE ([Id] IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.sqlserver.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -50,6 +50,29 @@ namespace FreeSql.Tests.MsAccess
sql = update.SetSource(items).IgnoreColumns(a => a.TypeGuid).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE [tb_topic] SET [CreateTime] = '2020-01-01 00:00:00' WHERE ([Id] IN (1,2,3,4,5,6,7,8,9,10))", sql);
if (g.msaccess.Select<ts_source_mpk>().Where(a => a.id1 == 1 && a.id2 == 7).Any() == false)
g.msaccess.Insert(new ts_source_mpk { id1 = 1, id2 = 7 }).ExecuteAffrows();
if (g.msaccess.Select<ts_source_mpk>().Where(a => a.id1 == 1 && a.id2 == 8).Any() == false)
g.msaccess.Insert(new ts_source_mpk { id1 = 1, id2 = 8 }).ExecuteAffrows();
sql = g.msaccess.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
g.msaccess.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ExecuteAffrows();
var testlist = g.msaccess.Select<ts_source_mpk>().ToList();
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -79,6 +79,19 @@ namespace FreeSql.Tests.MySql
Assert.Equal("UPDATE `TestEnumUpdateTb` SET `type` = 'sum211', `time` = '0001-01-01 00:00:00.000' WHERE (`id` = 0)", sql);
g.mysql.Update<TestEnumUpdateTb>().NoneParameter().SetSource(new TestEnumUpdateTb { id = (int)id, type = TestEnumUpdateTbType.biggit }).ExecuteAffrows();
Assert.Equal(TestEnumUpdateTbType.biggit, g.mysql.Select<TestEnumUpdateTb>().Where(a => a.id == id).First()?.type);
sql = g.mysql.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -48,6 +48,19 @@ namespace FreeSql.Tests.Oracle
sql = update.SetSource(items).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE \"TB_TOPIC\" SET \"CREATETIME\" = :p_0 WHERE (\"ID\" IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.oracle.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -49,7 +49,21 @@ namespace FreeSql.Tests.PostgreSQL
sql = update.SetSource(items).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE \"tb_topic\" SET \"createtime\" = @p_0 WHERE (\"id\" IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.pgsql.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()
{

View File

@@ -60,7 +60,21 @@ namespace FreeSql.Tests.SqlServer
sql = update.SetSource(items).IgnoreColumns(a => a.TypeGuid).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE [tb_topic] SET [CreateTime] = @p_0 WHERE ([Id] IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.sqlserver.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()
{

View File

@@ -50,6 +50,19 @@ namespace FreeSql.Tests.Sqlite
sql = update.SetSource(items).IgnoreColumns(a => a.TypeGuid).Set(a => a.CreateTime, new DateTime(2020, 1, 1)).ToSql().Replace("\r\n", "");
Assert.Equal("UPDATE \"tb_topic\" SET \"CreateTime\" = @p_0 WHERE (\"Id\" IN (1,2,3,4,5,6,7,8,9,10))", sql);
sql = g.sqlite.Update<ts_source_mpk>().SetSource(new[] {
new ts_source_mpk { id1 = 1, id2 = 7, xx = "a1" },
new ts_source_mpk { id1 = 1, id2 = 8, xx = "b122" }
}).NoneParameter().ToSql().Replace("\r\n", "");
}
public class ts_source_mpk
{
[Column(IsPrimary = true)]
public int id1 { get; set; }
[Column(IsPrimary = true)]
public int id2 { get; set; }
public string xx { get; set; }
}
[Fact]
public void IgnoreColumns()

View File

@@ -2426,180 +2426,7 @@
</summary>
</member>
<member name="P:FreeSql.IAop.AuditValue">
<summary>
Insert/Update自动值处理
</summary>
</member>
<member name="P:FreeSql.Aop.ParseExpressionEventArgs.FreeParse">
<summary>
内置解析功能,可辅助您进行解析
</summary>
</member>
<member name="P:FreeSql.Aop.ParseExpressionEventArgs.Expression">
<summary>
需要您解析的表达式
</summary>
</member>
<member name="P:FreeSql.Aop.ParseExpressionEventArgs.Result">
<summary>
解析后的内容
</summary>
</member>
<member name="P:FreeSql.Aop.ConfigEntityEventArgs.EntityType">
<summary>
实体类型
</summary>
</member>
<member name="P:FreeSql.Aop.ConfigEntityEventArgs.ModifyResult">
<summary>
实体配置
</summary>
</member>
<member name="P:FreeSql.Aop.ConfigEntityEventArgs.ModifyIndexResult">
<summary>
索引配置
</summary>
</member>
<member name="P:FreeSql.Aop.ConfigEntityPropertyEventArgs.EntityType">
<summary>
实体类型
</summary>
</member>
<member name="P:FreeSql.Aop.ConfigEntityPropertyEventArgs.Property">
<summary>
实体的属性
</summary>
</member>
<member name="P:FreeSql.Aop.ConfigEntityPropertyEventArgs.ModifyResult">
<summary>
实体的属性配置
</summary>
</member>
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.Identifier">
<summary>
标识符,可将 CurdBefore 与 CurdAfter 进行匹配
</summary>
</member>
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.CurdType">
<summary>
操作类型
</summary>
</member>
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.EntityType">
<summary>
实体类型
</summary>
</member>
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.Table">
<summary>
实体类型的元数据
</summary>
</member>
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.Sql">
<summary>
执行的 SQL
</summary>
</member>
<member name="P:FreeSql.Aop.CurdBeforeEventArgs.DbParms">
<summary>
参数化命令
</summary>
</member>
<member name="P:FreeSql.Aop.CurdAfterEventArgs.Exception">
<summary>
发生的错误
</summary>
</member>
<member name="P:FreeSql.Aop.CurdAfterEventArgs.ExecuteResult">
<summary>
执行SQL命令返回的结果
</summary>
</member>
<member name="P:FreeSql.Aop.CurdAfterEventArgs.ElapsedTicks">
<summary>
耗时单位Ticks
</summary>
</member>
<member name="P:FreeSql.Aop.CurdAfterEventArgs.ElapsedMilliseconds">
<summary>
耗时(单位:毫秒)
</summary>
</member>
<member name="P:FreeSql.Aop.SyncStructureBeforeEventArgs.Identifier">
<summary>
标识符,可将 SyncStructureBeforeEventArgs 与 SyncStructureAfterEventArgs 进行匹配
</summary>
</member>
<member name="P:FreeSql.Aop.SyncStructureBeforeEventArgs.EntityTypes">
<summary>
实体类型
</summary>
</member>
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.Sql">
<summary>
执行的 SQL
</summary>
</member>
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.Exception">
<summary>
发生的错误
</summary>
</member>
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.ElapsedTicks">
<summary>
耗时单位Ticks
</summary>
</member>
<member name="P:FreeSql.Aop.SyncStructureAfterEventArgs.ElapsedMilliseconds">
<summary>
耗时(单位:毫秒)
</summary>
</member>
<member name="P:FreeSql.Aop.AuditValueEventArgs.AuditValueType">
<summary>
类型
</summary>
</member>
<member name="P:FreeSql.Aop.AuditValueEventArgs.Column">
<summary>
属性列的元数据
</summary>
</member>
<member name="P:FreeSql.Aop.AuditValueEventArgs.Property">
<summary>
反射的属性信息
</summary>
</member>
<member name="P:FreeSql.Aop.AuditValueEventArgs.Value">
<summary>
获取实体的属性值,也可以设置实体的属性新值
</summary>
</member>
<member name="P:FreeSql.ICodeFirst.IsAutoSyncStructure">
<summary>
【开发环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改
</summary>
</member>
<member name="P:FreeSql.ICodeFirst.IsSyncStructureToLower">
<summary>
转小写同步结构
</summary>
</member>
<member name="P:FreeSql.ICodeFirst.IsSyncStructureToUpper">
<summary>
转大写同步结构
</summary>
</member>
<member name="P:FreeSql.ICodeFirst.IsConfigEntityFromDbFirst">
<summary>
将数据库的主键、自增、索引设置导入,适用 DbFirst 模式,无须在实体类型上设置 [Column(IsPrimary)] 或者 ConfigEntity。此功能目前可用于 mysql/sqlserver/postgresql/oracle。<para></para>
本功能会影响 IFreeSql 首次访问的速度。<para></para>
若使用 CodeFirst 创建索引后,又直接在数据库上建了索引,若无本功能下一次 CodeFirst 迁移时数据库上创建的索引将被删除
</summary>
</member>
<member name="P:FreeSql.ICodeFirst.IsNoneCommandParameter">
<summary>
不使用命令参数化执行,针对 Insert/Update
<summary<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Insert/Update
</summary>
</member>
<member name="P:FreeSql.ICodeFirst.IsGenerateCommandParameterWithLambda">
@@ -2874,6 +2701,161 @@
<param name="end"></param>
<returns></returns>
</member>
<member name="M:FreeSqlGlobalExpressionCall.Contains``2(System.Collections.Generic.IEnumerable{System.ValueTuple{``0,``1}},``0,``1)">
<summary>
C#嚗帋<E59A97><E5B88B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝剜䰻<E5899C><E4B0BB> exp1, exp2 <20>臬炏摮睃銁<para></para>
SQL嚗<4C> <para></para>
exp1 = that[0].Item1 and exp2 = that[0].Item2 OR <para></para>
exp1 = that[1].Item1 and exp2 = that[1].Item2 OR <para></para>
... <para></para>
瘜冽<E7989C>嚗𡁜<E59A97> that 銝<> null <20><> empty <20><EFBFBD>餈𥪜<E9A488> 1=0
</summary>
<typeparam name="T1"></typeparam>
<typeparam name="T2"></typeparam>
<param name="that"></param>
<param>
<summary>
<20><EFBFBD>c#蝐餃<E89D90>嚗𢁾nt<6E><74>ong
</summary>
<param name="column"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IDbFirst.GetCsTypeInfo(FreeSql.DatabaseModel.DbColumnInfo)">
<summary>
<20><EFBFBD>c#蝐餃<E89D90>撖寡情
</summary>
<param name="column"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IDbFirst.GetDataReaderMethod(FreeSql.DatabaseModel.DbColumnInfo)">
<summary>
<20><EFBFBD>ado.net霂餃<E99C82><E9A483><EFBFBD>, GetBoolean<61><6E>etInt64
</summary>
<param name="column"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IDbFirst.GetCsStringify(FreeSql.DatabaseModel.DbColumnInfo)">
<summary>
摨誩<E691A8><E8AAA9><EFBFBD>
</summary>
<param name="column"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IDbFirst.GetCsParse(FreeSql.DatabaseModel.DbColumnInfo)">
<summary>
<20><EFBFBD><E6BB9A><EFBFBD>
</summary>
<param name="column"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IDbFirst.GetEnumsByDatabase(System.String[])">
<summary>
<20><EFBFBD><E79195>唳旿摨𤘪<E691A8>銝曄掩<E69B84><EFBFBD><E9A1B5><EFBFBD>鍂 PostgreSQL
</summary>
<param name="database"></param>
<returns></returns>
</member>
<member name="M:FreeSql.Internal.CommonProvider.InsertProvider`1.IgnoreCanInsert">
<summary>
AsType, Ctor, ClearData 銝匧<E98A9D><E58CA7>唳䲮<E594B3><E4B2AE><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>
</summary>
</member>
<member name="M:FreeSql.Internal.CommonProvider.UpdateProvider`1.IgnoreCanUpdate">
<summary>
AsType, Ctor, ClearData 銝匧<E98A9D><E58CA7>唳䲮<E594B3><E4B2AE><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>
</summary>
</member>
<member name="M:FreeSql.Internal.CommonUtils.GetProperyCommentBySummary(System.Type)">
<summary>
<20><EFBFBD>撅墧<E69285><EFBFBD>瘜券<E7989C><E588B8><EFBFBD>𧋦嚗屸<E59A97><EFBFBD> xml 霂餃<E99C82>
</summary>
<param name="type"></param>
<returns>Dict嚗饂ey=撅墧<E69285><EFBFBD>嚗綋alue=瘜券<E7989C></returns>
</member>
<member name="M:FreeSql.Internal.GlobalFilter.Apply``1(System.String,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
<summary>
<20>𥕦遣銝<E981A3>銝芾<E98A9D>皛文膥
</summary>
<typeparam name="TEntity"></typeparam>
<param name="name"><EFBFBD><EFBFBD></param>
<param name="where">銵刻噢撘<EFBFBD></param>
<returns></returns>
</member>
<member name="P:FreeSql.Internal.Model.TableRef.RefMiddleEntityType">
<summary>
銝剝𡢿銵剁<E98AB5>憭𡁜笆憭<E7AC86>
</summary>
</member>
<member name="F:FreeSql.Internal.StringConvertType.None">
<summary>
銝滩<E98A9D>銵䔶遙雿訫<E99BBF><E8A8AB><EFBFBD>
</summary>
</member>
<member name="F:FreeSql.Internal.StringConvertType.PascalCaseToUnderscore">
<summary>
<><E692A0><EFBFBD>臬㨃<E887AC><EFBFBD>摮㛖泵銝脰蓮<E884B0>蛹銝见<E98A9D>蝥踹<E89DA5><E8B8B9>𥪜<EFBFBD>蝚虫葡
<para></para>
BigApple -> Big_Apple
</summary>
</member>
<member name="F:FreeSql.Internal.StringConvertType.PascalCaseToUnderscoreWithUpper">
<summary>
<><E692A0><EFBFBD>臬㨃<E887AC><EFBFBD>摮㛖泵銝脰蓮<E884B0>蛹銝见<E98A9D>蝥踹<E89DA5><E8B8B9>𥪜<EFBFBD>蝚虫葡嚗䔶<E59A97>頧祆揢銝箏<E98A9D>憭批<E686AD>
<para></para>
BigApple -> BIG_APPLE
</summary>
</member>
<member name="F:FreeSql.Internal.StringConvertType.PascalCaseToUnderscoreWithLower">
<summary>
<><E692A0><EFBFBD>臬㨃<E887AC><EFBFBD>摮㛖泵銝脰蓮<E884B0>蛹銝见<E98A9D>蝥踹<E89DA5><E8B8B9>𥪜<EFBFBD>蝚虫葡嚗䔶<E59A97>頧祆揢銝箏<E98A9D>撠誩<E692A0>
<para></para>
BigApple -> big_apple
</summary>
</member>
<member name="F:FreeSql.Internal.StringConvertType.Upper">
<summary>
<><E692A0>蝚虫葡頧祆揢銝箏之<E7AE8F><E4B98B>
<para></para>
BigApple -> BIGAPPLE
</summary>
</member>
<member name="F:FreeSql.Internal.StringConvertType.Lower">
<summary>
<><E692A0>蝚虫葡頧祆揢銝箏<E98A9D><E7AE8F><EFBFBD>
<para></para>
BigApple -> bigapple
</summary>
</member>
<member name="M:FreeSql.Internal.StringUtils.PascalCaseToUnderScore(System.String)">
<summary>
<><E692A0><EFBFBD>臬㨃<E887AC><EFBFBD>摮㛖泵銝脰蓮<E884B0>蛹銝见<E98A9D>蝥踹<E89DA5><E8B8B9>𥪜<EFBFBD>蝚虫葡
<para></para>
BigApple -> Big_Apple
</summary>
<param name="str"></param>
<returns></returns>
</member>
<member name="M:FreeSqlGlobalExpressionCall.Between(System.DateTime,System.DateTime,System.DateTime)">
<summary>
C#嚗<> that >= between &amp;&amp; that &lt;= and<para></para>
SQL嚗<4C> that BETWEEN between AND and
</summary>
<param name="that"></param>
<param name="between"></param>
<param name="and"></param>
<returns></returns>
</member>
<member name="M:FreeSqlGlobalExpressionCall.BetweenEnd(System.DateTime,System.DateTime,System.DateTime)">
<summary>
瘜冽<E7989C>嚗朞<E59A97>銝芣䲮瘜訫<E7989C> Between <20><EFBFBD>敺桀躹<E6A180><E8BAB9><para></para>
C#嚗<> that >= start &amp;&amp; that &lt; end<para></para>
SQL嚗<4C> that >= start and that &lt; end
</summary>
<param name="that"></param>
<param name="start"></param>
<param name="end"></param>
<returns></returns>
</member>
<member name="M:FreeSqlGlobalExpressionCall.Contains``2(System.Collections.Generic.IEnumerable{System.ValueTuple{``0,``1}},``0,``1)">
<summary>
C#嚗帋<E59A97><E5B88B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝剜䰻<E5899C><E4B0BB> exp1, exp2 <20>臬炏摮睃銁<para></para>

View File

@@ -43,7 +43,7 @@ namespace FreeSql.MsAccess.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(" + '+' + ");
caseWhen.Append(MsAccessUtils.GetCastSql(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)), typeof(string)));
++pkidx;
}
@@ -60,7 +60,7 @@ namespace FreeSql.MsAccess.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(" + '+' + ");
sb.Append(MsAccessUtils.GetCastSql(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)), typeof(string)));
++pkidx;
}

View File

@@ -79,7 +79,7 @@ namespace FreeSql.MySql.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(", '+', ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
++pkidx;
}
@@ -97,7 +97,7 @@ namespace FreeSql.MySql.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(", '+', ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)));
++pkidx;
}

View File

@@ -39,7 +39,7 @@ namespace FreeSql.Odbc.Dameng
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
++pkidx;
}
@@ -57,7 +57,7 @@ namespace FreeSql.Odbc.Dameng
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(" || ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)));
++pkidx;
}

View File

@@ -36,7 +36,7 @@ namespace FreeSql.Odbc.Default
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(" + '+' + ");
caseWhen.Append(_utils.Adapter.CastSql(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)), _utils.Adapter.MappingOdbcTypeVarChar));
++pkidx;
}
@@ -53,7 +53,7 @@ namespace FreeSql.Odbc.Default
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(" + '+' + ");
sb.Append(_utils.Adapter.CastSql(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)), _utils.Adapter.MappingOdbcTypeVarChar));
++pkidx;
}

View File

@@ -38,7 +38,7 @@ namespace FreeSql.Odbc.GBase
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name))).Append("::varchar");
++pkidx;
}
@@ -56,7 +56,7 @@ namespace FreeSql.Odbc.GBase
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(" || ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d))).Append("::varchar");
++pkidx;
}

View File

@@ -73,7 +73,7 @@ namespace FreeSql.Odbc.MySql
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(", '+', ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
++pkidx;
}
@@ -91,7 +91,7 @@ namespace FreeSql.Odbc.MySql
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(", '+', ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)));
++pkidx;
}

View File

@@ -39,7 +39,7 @@ namespace FreeSql.Odbc.Oracle
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
++pkidx;
}
@@ -57,7 +57,7 @@ namespace FreeSql.Odbc.Oracle
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(" || ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)));
++pkidx;
}

View File

@@ -72,7 +72,7 @@ namespace FreeSql.Odbc.PostgreSQL
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name))).Append("::varchar");
++pkidx;
}
@@ -90,7 +90,7 @@ namespace FreeSql.Odbc.PostgreSQL
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(" || ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d))).Append("::varchar");
++pkidx;
}

View File

@@ -77,7 +77,7 @@ namespace FreeSql.Odbc.SqlServer
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(" + '+' + ");
caseWhen.Append("cast(").Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name))).Append(" as varchar)");
++pkidx;
}
@@ -94,7 +94,7 @@ namespace FreeSql.Odbc.SqlServer
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(" + '+' + ");
sb.Append("cast(").Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d))).Append(" as varchar)");
++pkidx;
}

View File

@@ -39,7 +39,7 @@ namespace FreeSql.Oracle.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
++pkidx;
}
@@ -57,7 +57,7 @@ namespace FreeSql.Oracle.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(" || ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)));
++pkidx;
}

View File

@@ -81,7 +81,7 @@ namespace FreeSql.PostgreSQL.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(" || ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
if (string.IsNullOrEmpty(InternalTableAlias) == false) caseWhen.Append(InternalTableAlias).Append(".");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name))).Append("::varchar");
++pkidx;
@@ -100,7 +100,7 @@ namespace FreeSql.PostgreSQL.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(" || ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d))).Append("::varchar");
++pkidx;
}

View File

@@ -78,7 +78,7 @@ namespace FreeSql.SqlServer.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(" + '+' + ");
caseWhen.Append("cast(").Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name))).Append(" as varchar)");
++pkidx;
}
@@ -95,7 +95,7 @@ namespace FreeSql.SqlServer.Curd
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(" + '+' + ");
sb.Append("cast(").Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d))).Append(" as varchar)");
++pkidx;
}

View File

@@ -35,11 +35,11 @@ namespace FreeSql.Sqlite.Curd
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
return;
}
caseWhen.Append("CONCAT(");
caseWhen.Append("(");
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) caseWhen.Append(", ");
if (pkidx > 0) caseWhen.Append(" || '+' || ");
caseWhen.Append(_commonUtils.QuoteReadColumn(pk.CsType, pk.Attribute.MapType, _commonUtils.QuoteSqlName(pk.Attribute.Name)));
++pkidx;
}
@@ -53,11 +53,11 @@ namespace FreeSql.Sqlite.Curd
sb.Append(_commonUtils.FormatSql("{0}", _table.Primarys.First().GetMapValue(d)));
return;
}
sb.Append("CONCAT(");
sb.Append("(");
var pkidx = 0;
foreach (var pk in _table.Primarys)
{
if (pkidx > 0) sb.Append(", ");
if (pkidx > 0) sb.Append(" || '+' || ");
sb.Append(_commonUtils.FormatSql("{0}", pk.GetMapValue(d)));
++pkidx;
}