- 修复 fsql.InsertOrUpdate CanInsert=false,CanUpdate=true (mysql/pgsql)不生效的 bug;

This commit is contained in:
2881099 2022-11-01 18:12:31 +08:00
parent 2d2e3640c9
commit 2bd621da20
11 changed files with 166 additions and 24 deletions

View File

@ -429,6 +429,15 @@ namespace base_entity
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
#endregion
var sqlt0a1 = fsql.InsertOrUpdate<>()
.SetSource(new
{
ID = 1,
= "NIKE",
})
.ToSql();
fsql.UseMessagePackMap();
fsql.Delete<MessagePackMapInfo>().Where("1=1").ExecuteAffrows();
@ -1605,4 +1614,42 @@ namespace base_entity
}
}
public class
{
/// <summary>
/// ID
/// </summary>
[Column(Name = "ID", IsPrimary = true)]
public int ID { get; set; }
/// <summary>
/// 店铺名称
/// </summary>
[Column(Name = "店铺名称")]
public string { get; set; }
/// <summary>
/// 日期
/// </summary>
[Column(Name = "日期")]
public DateTime { get; set; }
/// <summary>
/// 品牌名称
/// </summary>
[Column(Name = "品牌名称")]
public string { get; set; }
/// <summary>
/// 成交金额
/// </summary>
[Column(Name = "成交金额")]
public decimal? { get; set; }
/// <summary>
/// 更新时间
/// </summary>
[Column(Name = "更新时间", CanInsert = false, CanUpdate = true, ServerTime = DateTimeKind.Local)]
public DateTime { get; set; }
}
}

View File

@ -79,6 +79,36 @@
软删除
</summary>
</member>
<member name="P:base_entity.抖店实时销售金额表.ID">
<summary>
ID
</summary>
</member>
<member name="P:base_entity.抖店实时销售金额表.店铺名称">
<summary>
店铺名称
</summary>
</member>
<member name="P:base_entity.抖店实时销售金额表.日期">
<summary>
日期
</summary>
</member>
<member name="P:base_entity.抖店实时销售金额表.品牌名称">
<summary>
品牌名称
</summary>
</member>
<member name="P:base_entity.抖店实时销售金额表.成交金额">
<summary>
成交金额
</summary>
</member>
<member name="P:base_entity.抖店实时销售金额表.更新时间">
<summary>
更新时间
</summary>
</member>
<member name="T:EMSServerModel.Model.Role">
<summary>
角色表

View File

@ -800,5 +800,14 @@
<param name="that"></param>
<returns></returns>
</member>
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
批量注入 Repository可以参考代码自行调整
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
</members>
</doc>

View File

@ -92,9 +92,16 @@ namespace FreeSql.Custom.MySql
}
else if (_mysqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_mysqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -132,9 +132,16 @@ namespace FreeSql.Custom.PostgreSQL
}
else if (_pgsqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_pgsqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -132,9 +132,16 @@ namespace FreeSql.KingbaseES
}
else if (_insert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _update.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _update.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_insert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _update.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _update.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -92,9 +92,16 @@ namespace FreeSql.MySql.Curd
}
else if (_mysqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_mysqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -132,9 +132,16 @@ namespace FreeSql.Odbc.KingbaseES
}
else if (_pgsqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_pgsqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -92,9 +92,16 @@ namespace FreeSql.Odbc.MySql
}
else if (_mysqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_mysqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _mysqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _mysqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -132,9 +132,16 @@ namespace FreeSql.Odbc.PostgreSQL
}
else if (_pgsqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_pgsqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{

View File

@ -132,9 +132,16 @@ namespace FreeSql.PostgreSQL.Curd
}
else if (_pgsqlInsert.InternalIgnore.ContainsKey(col.Attribute.Name))
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
if (string.IsNullOrEmpty(col.DbUpdateValue) == false)
{
sb.Append(_pgsqlInsert.InternalCommonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ").Append(col.DbUpdateValue);
}
else
{
var caseWhen = _pgsqlUpdate.InternalWhereCaseSource(col.CsName, sqlval => sqlval).Trim();
sb.Append(caseWhen);
if (caseWhen.EndsWith(" END")) _pgsqlUpdate.InternalToSqlCaseWhenEnd(sb, col);
}
}
else
{