diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 9c6cd88b..743835e4 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -532,5 +532,14 @@ + + + 批量注入 Repository,可以参考代码自行调整 + + + + + + diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs index dcfab4da..93056dd7 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs @@ -233,6 +233,12 @@ namespace FreeSql.Tests EdiId2 = SqlExt.Max(a.Key).Over().PartitionBy(a.Value.EdiId).OrderByDescending(a.Value.Id).ToValue(), }); + var sqlextIsNull = g.sqlserver.Select() + .ToSql(a => new + { + nvl = SqlExt.IsNull(a.EdiId, 0) + }); + var sqlextGroupConcat = g.mysql.Select() .InnerJoin((a, b) => b.Id == a.Id) .ToSql((a, b) => new diff --git a/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs index a5cecf49..a625db9d 100644 --- a/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs +++ b/FreeSql/Extensions/FreeSqlGlobalExpressionCallExtensions.cs @@ -104,6 +104,19 @@ namespace FreeSql public static ISqlOver RowNumber() => Over("row_number()"); #endregion + /// + /// isnull、ifnull、coalesce、nvl + /// + /// + /// + /// + /// + public static TValue IsNull(TValue value, TValue defaultValue) + { + expContext.Value.Result = expContext.Value._commonExp._common.IsNull(expContext.Value.ParsedContent["value"], expContext.Value.ParsedContent["defaultValue"]); + return default(TValue); + } + /// /// case when .. then .. end /// @@ -311,7 +324,7 @@ namespace FreeSql public interface IGroupConcat { } #endregion - #region string.Join 反射处理,此块代卖用于反射,所以别修改定义 + #region string.Join 反射处理,此块代码用于反射,所以别修改定义 public static string StringJoinSqliteGroupConcat(object column, object delimiter) { expContext.Result = $"group_concat({expContext.ParsedContent["column"]},{expContext.ParsedContent["delimiter"]})"; diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 8af604f0..a550efcb 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -1103,6 +1103,15 @@ + + + isnull、ifnull、coalesce、nvl + + + + + + case when .. then .. end