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; }