- 修复 DbFirst Oracle 序列值使用复杂的问题,结合 [Column(InsertValueSql = "xxx.nextval")];

This commit is contained in:
28810 2020-03-29 18:15:39 +08:00
parent 9b87829d53
commit a4367ebc5a
6 changed files with 27 additions and 6 deletions

View File

@ -211,6 +211,15 @@
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
<summary>
批量注入 Repository可以参考代码自行调整
</summary>
<param name="services"></param>
<param name="globalDataFilter"></param>
<param name="assemblies"></param>
<returns></returns>
</member>
<member name="M:FreeSql.IBaseRepository.AsType(System.Type)">
<summary>
动态Type在使用 Repository&lt;object&gt; 后使用本方法,指定实体类型

View File

@ -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")]

View File

@ -86,7 +86,8 @@ namespace FreeSql
/// <returns></returns>
int ExecuteAffrows();
/// <summary>
/// 执行SQL语句返回被删除的记录
/// 执行SQL语句返回被删除的记录<para></para>
/// 注意:此方法只有 Postgresql/SqlServer 有效果
/// </summary>
/// <returns></returns>
List<T1> ExecuteDeleted();

View File

@ -106,12 +106,14 @@ namespace FreeSql
/// <returns></returns>
int ExecuteAffrows();
/// <summary>
/// 执行SQL语句返回自增值
/// 执行SQL语句返回自增值<para></para>
/// 注意:请检查实体类是否标记了 [Column(IsIdentity = true)]
/// </summary>
/// <returns></returns>
long ExecuteIdentity();
/// <summary>
/// 执行SQL语句返回插入后的记录
/// 执行SQL语句返回插入后的记录<para></para>
/// 注意:此方法只有 Postgresql/SqlServer 有效果
/// </summary>
/// <returns></returns>
List<T1> ExecuteInserted();

View File

@ -183,7 +183,8 @@ namespace FreeSql
/// <returns></returns>
int ExecuteAffrows();
/// <summary>
/// 执行SQL语句返回更新后的记录
/// 执行SQL语句返回更新后的记录<para></para>
/// 注意:此方法只有 Postgresql/SqlServer 有效果
/// </summary>
/// <returns></returns>
List<T1> ExecuteUpdated();

View File

@ -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(", ");