diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index d8bba58b..ddd18378 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -211,6 +211,15 @@
+
+
+ 批量注入 Repository,可以参考代码自行调整
+
+
+
+
+
+
动态Type,在使用 Repository<object> 后使用本方法,指定实体类型
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
index a23922cb..67dadc54 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
@@ -322,6 +322,14 @@ namespace FreeSql.Tests
Assert.NotNull(mt_code);
Assert.Equal(mt_codeId, mt_code.ID);
Assert.Equal("mt_code2", mt_code.Code);
+
+ var id = g.oracle.Insert(new TestORC12()).ExecuteIdentity();
+ }
+
+ class TestORC12
+ {
+ [Column(IsIdentity = true, InsertValueSql = "\"CLASS1_seq_ID\".nextval")]
+ public int Id { get; set; }
}
[Table(Name = "t_text")]
diff --git a/FreeSql/Interface/Curd/IDelete.cs b/FreeSql/Interface/Curd/IDelete.cs
index 3619cd67..0cf9f699 100644
--- a/FreeSql/Interface/Curd/IDelete.cs
+++ b/FreeSql/Interface/Curd/IDelete.cs
@@ -86,7 +86,8 @@ namespace FreeSql
///
int ExecuteAffrows();
///
- /// 执行SQL语句,返回被删除的记录
+ /// 执行SQL语句,返回被删除的记录
+ /// 注意:此方法只有 Postgresql/SqlServer 有效果
///
///
List ExecuteDeleted();
diff --git a/FreeSql/Interface/Curd/IInsert.cs b/FreeSql/Interface/Curd/IInsert.cs
index 77ddd620..e7f5f1db 100644
--- a/FreeSql/Interface/Curd/IInsert.cs
+++ b/FreeSql/Interface/Curd/IInsert.cs
@@ -106,12 +106,14 @@ namespace FreeSql
///
int ExecuteAffrows();
///
- /// 执行SQL语句,返回自增值
+ /// 执行SQL语句,返回自增值
+ /// 注意:请检查实体类是否标记了 [Column(IsIdentity = true)]
///
///
long ExecuteIdentity();
///
- /// 执行SQL语句,返回插入后的记录
+ /// 执行SQL语句,返回插入后的记录
+ /// 注意:此方法只有 Postgresql/SqlServer 有效果
///
///
List ExecuteInserted();
diff --git a/FreeSql/Interface/Curd/IUpdate.cs b/FreeSql/Interface/Curd/IUpdate.cs
index 5e79eb95..4c04c013 100644
--- a/FreeSql/Interface/Curd/IUpdate.cs
+++ b/FreeSql/Interface/Curd/IUpdate.cs
@@ -183,7 +183,8 @@ namespace FreeSql
///
int ExecuteAffrows();
///
- /// 执行SQL语句,返回更新后的记录
+ /// 执行SQL语句,返回更新后的记录
+ /// 注意:此方法只有 Postgresql/SqlServer 有效果
///
///
List ExecuteUpdated();
diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
index 71ad77dc..93db5277 100644
--- a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
+++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
@@ -39,7 +39,7 @@ namespace FreeSql.Oracle.Curd
foreach (var col in _table.Columns.Values)
{
if (col.Attribute.IsIdentity) _identCol = col;
- if (col.Attribute.IsIdentity && _insertIdentity == false) continue;
+ if (col.Attribute.IsIdentity && _insertIdentity == false && string.IsNullOrEmpty(col.DbInsertValue)) continue;
if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.Attribute.Name)) continue;
if (colidx > 0) sbtb.Append(", ");
@@ -60,7 +60,7 @@ namespace FreeSql.Oracle.Curd
var colidx2 = 0;
foreach (var col in _table.Columns.Values)
{
- if (col.Attribute.IsIdentity && _insertIdentity == false) continue;
+ if (col.Attribute.IsIdentity && _insertIdentity == false && string.IsNullOrEmpty(col.DbInsertValue)) continue;
if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.Attribute.Name)) continue;
if (colidx2 > 0) sb.Append(", ");