mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修复 MySql + InsertOrUpdateDict + IfExistsDoNothing 错误;#1601
This commit is contained in:
parent
3ab8bb5ec6
commit
dd1f64a772
@ -559,7 +559,7 @@ namespace base_entity
|
|||||||
//.UseConnectionString(FreeSql.DataType.Firebird, @"database=localhost:D:\fbdata\EXAMPLES.fdb;user=sysdba;password=123456;max pool size=5")
|
//.UseConnectionString(FreeSql.DataType.Firebird, @"database=localhost:D:\fbdata\EXAMPLES.fdb;user=sysdba;password=123456;max pool size=5")
|
||||||
//.UseQuoteSqlName(false)
|
//.UseQuoteSqlName(false)
|
||||||
|
|
||||||
.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;min pool size=1;Max pool size=3;AllowLoadLocalInfile=true")
|
//.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;min pool size=1;Max pool size=3;AllowLoadLocalInfile=true")
|
||||||
|
|
||||||
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true")
|
//.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true")
|
||||||
|
|
||||||
@ -600,6 +600,14 @@ namespace base_entity
|
|||||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
var dict = new List<Dictionary<string, object>>();
|
||||||
|
Dictionary<string, object> d = new Dictionary<string, object>();
|
||||||
|
d.Add("id", 1);
|
||||||
|
d.Add("name", "name1");
|
||||||
|
dict.Add(d);
|
||||||
|
var testx01 = fsql.InsertOrUpdateDict(dict).AsTable("table222zzz").WherePrimary("id").IfExistsDoNothing().ToSql();
|
||||||
|
fsql.InsertOrUpdateDict(dict).AsTable("table222zzz").WherePrimary("id").IfExistsDoNothing().ExecuteAffrows();
|
||||||
|
|
||||||
var xxxc1 = User1.Select.ToSql(a => new
|
var xxxc1 = User1.Select.ToSql(a => new
|
||||||
{
|
{
|
||||||
count = User1.Where(b => b.Id == a.Id).Count()
|
count = User1.Where(b => b.Id == a.Id).Count()
|
||||||
|
@ -733,15 +733,6 @@
|
|||||||
<param name="modelBuilder"></param>
|
<param name="modelBuilder"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:FreeSqlDbContextExtensions.ApplyConfigurationsFromAssembly(FreeSql.ICodeFirst,System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
|
|
||||||
<summary>
|
|
||||||
根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类
|
|
||||||
</summary>
|
|
||||||
<param name="codeFirst"></param>
|
|
||||||
<param name="assembly"></param>
|
|
||||||
<param name="predicate"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
|
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
|
||||||
<summary>
|
<summary>
|
||||||
创建普通数据上下文档对象
|
创建普通数据上下文档对象
|
||||||
@ -800,14 +791,5 @@
|
|||||||
<param name="that"></param>
|
<param name="that"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
@ -88,12 +88,18 @@ namespace FreeSql.Custom.MySql
|
|||||||
{
|
{
|
||||||
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + MySql ", _table.CsName));
|
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + MySql ", _table.CsName));
|
||||||
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
||||||
sb.Append(" \r\n FROM dual WHERE NOT EXISTS(").Append(
|
{
|
||||||
_orm.Select<T1>()
|
sb.Append(" \r\n FROM dual WHERE NOT EXISTS(");
|
||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
if (typeof(T1) == typeof(Dictionary<string, object>) && rowd is T1 dict)
|
||||||
.DisableGlobalFilter()
|
sb.Append($"SELECT 1 FROM {_commonUtils.QuoteSqlName(_tableRule(null))} WHERE {_commonUtils.WhereItems<T1>(_tempPrimarys, "", new T1[] { dict })})");
|
||||||
.WhereDynamic(rowd)
|
else
|
||||||
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")"));
|
sb.Append(
|
||||||
|
_orm.Select<T1>()
|
||||||
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
|
.DisableGlobalFilter()
|
||||||
|
.WhereDynamic(rowd)
|
||||||
|
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(sql)) return null;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
@ -88,12 +88,18 @@ namespace FreeSql.MySql.Curd
|
|||||||
{
|
{
|
||||||
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + MySql ", _table.CsName));
|
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + MySql ", _table.CsName));
|
||||||
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
||||||
sb.Append(" \r\n FROM dual WHERE NOT EXISTS(").Append(
|
{
|
||||||
_orm.Select<T1>()
|
sb.Append(" \r\n FROM dual WHERE NOT EXISTS(");
|
||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
if (typeof(T1) == typeof(Dictionary<string, object>) && rowd is T1 dict)
|
||||||
.DisableGlobalFilter()
|
sb.Append($"SELECT 1 FROM {_commonUtils.QuoteSqlName(_tableRule(null))} WHERE {_commonUtils.WhereItems<T1>(_tempPrimarys, "", new T1[] { dict })})");
|
||||||
.WhereDynamic(rowd)
|
else
|
||||||
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")"));
|
sb.Append(
|
||||||
|
_orm.Select<T1>()
|
||||||
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
|
.DisableGlobalFilter()
|
||||||
|
.WhereDynamic(rowd)
|
||||||
|
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(sql)) return null;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
@ -88,12 +88,18 @@ namespace FreeSql.Odbc.MySql
|
|||||||
{
|
{
|
||||||
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + MySql ", _table.CsName));
|
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + MySql ", _table.CsName));
|
||||||
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
||||||
sb.Append(" \r\n FROM dual WHERE NOT EXISTS(").Append(
|
{
|
||||||
_orm.Select<T1>()
|
sb.Append(" \r\n FROM dual WHERE NOT EXISTS(");
|
||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
if (typeof(T1) == typeof(Dictionary<string, object>) && rowd is T1 dict)
|
||||||
.DisableGlobalFilter()
|
sb.Append($"SELECT 1 FROM {_commonUtils.QuoteSqlName(_tableRule(null))} WHERE {_commonUtils.WhereItems<T1>(_tempPrimarys, "", new T1[] { dict })})");
|
||||||
.WhereDynamic(rowd)
|
else
|
||||||
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")"));
|
sb.Append(
|
||||||
|
_orm.Select<T1>()
|
||||||
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
|
.DisableGlobalFilter()
|
||||||
|
.WhereDynamic(rowd)
|
||||||
|
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(sql)) return null;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
@ -64,13 +64,18 @@ namespace FreeSql.Sqlite.Curd
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + Sqlite ", _table.CsName));
|
if (_tempPrimarys.Any() == false) throw new Exception(CoreStrings.Entity_Must_Primary_Key("fsql.InsertOrUpdate + IfExistsDoNothing + Sqlite ", _table.CsName));
|
||||||
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) =>
|
sql = insert.ToSqlValuesOrSelectUnionAllExtension101(false, (rowd, idx, sb) => {
|
||||||
sb.Append(" \r\n WHERE NOT EXISTS(").Append(
|
sb.Append(" \r\n WHERE NOT EXISTS(");
|
||||||
_orm.Select<T1>()
|
if (typeof(T1) == typeof(Dictionary<string, object>) && rowd is T1 dict)
|
||||||
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
sb.Append($"SELECT 1 FROM {_commonUtils.QuoteSqlName(_tableRule(null))} WHERE {_commonUtils.WhereItems<T1>(_tempPrimarys, "", new T1[] { dict })})");
|
||||||
.DisableGlobalFilter()
|
else
|
||||||
.WhereDynamic(rowd)
|
sb.Append(
|
||||||
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")"));
|
_orm.Select<T1>()
|
||||||
|
.AsTable((_, __) => _tableRule?.Invoke(__)).AsType(_table.Type)
|
||||||
|
.DisableGlobalFilter()
|
||||||
|
.WhereDynamic(rowd)
|
||||||
|
.Limit(1).ToSql("1").Replace(" \r\n", " \r\n ")).Append(")");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (string.IsNullOrEmpty(sql)) return null;
|
if (string.IsNullOrEmpty(sql)) return null;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user