diff --git a/FreeSql/Interface/Curd/IInsertOrUpdate.cs b/FreeSql/Interface/Curd/IInsertOrUpdate.cs index e1ca5eff..1e019c50 100644 --- a/FreeSql/Interface/Curd/IInsertOrUpdate.cs +++ b/FreeSql/Interface/Curd/IInsertOrUpdate.cs @@ -36,6 +36,16 @@ namespace FreeSql /// IInsertOrUpdate SetSource(T1 source); /// + /// 添加或更新,设置实体 + /// + /// 实体 + /// + /// 根据临时主键插入或更新,a => a.Name | a => new{a.Name,a.Time} | a => new[]{"name","time"} + /// 注意:不处理自增,因某些数据库依赖主键或唯一键,所以指定临时主键仅对 SqlServer/PostgreSQL/Firebird/达梦/南大通用/金仓/神通 有效 + /// + /// + IInsertOrUpdate SetSource(T1 source, Expression> tempPrimarys); + /// /// 添加或更新,设置实体集合 /// /// 实体集合 diff --git a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs index 557fcdf2..ed8dd94d 100644 --- a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs @@ -118,6 +118,7 @@ namespace FreeSql.Internal.CommonProvider } public IInsertOrUpdate SetSource(T1 source) => this.SetSource(new[] { source }); + public IInsertOrUpdate SetSource(T1 source, Expression> tempPrimarys) => this.SetSource(new[] { source }, tempPrimarys); public IInsertOrUpdate SetSource(IEnumerable source, Expression> tempPrimarys = null) { if (source == null || source.Any() == false) return this;