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