From 695251fc88490a1036f944579fcd7523a3fdd541 Mon Sep 17 00:00:00 2001 From: hyzx86 Date: Wed, 7 Jun 2023 19:23:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=20=20InsertOrUpdateDictImpl=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20WhereIdentityPrimary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 18 ++++++++++++++++++ FreeSql/Extensions/FreeSqlGlobalExtensions.cs | 18 +++++++++++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 594fbad3..26522f10 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -733,6 +733,15 @@ + + + 根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类 + + + + + + 创建普通数据上下文档对象 @@ -791,5 +800,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs index 12012b83..5f161f28 100644 --- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs +++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs @@ -1086,11 +1086,17 @@ SELECT "); } return pks.ToArray(); } - public static void SetTablePrimary(TableInfo table, params string[] primarys) + + public static void SetTablePrimary(TableInfo table, bool isIdenity, params string[] primarys) { foreach (var primary in primarys) { - if (table.ColumnsByCs.TryGetValue(string.Concat(primary), out var col)) col.Attribute.IsPrimary = true; + if (table.ColumnsByCs.TryGetValue(string.Concat(primary), out var col)) + { + col.Attribute.IsPrimary = true; + if (isIdenity) + col.Attribute.IsIdentity = true; + } else throw new Exception(CoreStrings.GetPrimarys_ParameterError_IsNotDictKey(primary)); } table.Primarys = table.Columns.Where(a => a.Value.Attribute.IsPrimary).Select(a => a.Value).ToArray(); @@ -1172,7 +1178,13 @@ SELECT "); public InsertOrUpdateDictImpl WherePrimary(params string[] primarys) { - UpdateDictImpl.SetTablePrimary(_insertOrUpdateProvider._table, primarys); + UpdateDictImpl.SetTablePrimary(_insertOrUpdateProvider._table, false, primarys); + _insertOrUpdateProvider._tempPrimarys = _insertOrUpdateProvider._table.Primarys; + return this; + } + public InsertOrUpdateDictImpl WhereIdentityPrimary(params string[] primarys) + { + UpdateDictImpl.SetTablePrimary(_insertOrUpdateProvider._table, true, primarys); _insertOrUpdateProvider._tempPrimarys = _insertOrUpdateProvider._table.Primarys; return this; }