From 69909fdb8a7eb858a809dffb098320968bec9962 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Wed, 3 Apr 2019 18:41:32 +0800 Subject: [PATCH] =?UTF-8?q?v0.4.5(=E6=B8=85=E6=98=8E=E7=89=88=E6=9C=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化 IFreeSql.Transaction 可嵌套连续使用,之前会死锁; - 修复 导航属性的关系,误将 ManyToOne 设置成了 OneToMany; - 补充 DbFirst GetTablesByDatabase 获取表备注; - 补充 ISelect.ToList(a => new XxxDto { XxxId = a.Id, ... }) 支持,之前只能支持匿名类; - 补充 扩展 IUpdate.Set(a => a.Title + "111") 指定字段在原基础上增加值的范围,之前只支持数字类型的累加; --- FreeSql/FreeSql.csproj | 2 +- FreeSql/Internal/CommonProvider/UpdateProvider.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/FreeSql/FreeSql.csproj b/FreeSql/FreeSql.csproj index 1755002b..18f277ba 100644 --- a/FreeSql/FreeSql.csproj +++ b/FreeSql/FreeSql.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.4.1.2 + 0.4.5 true YeXiangQin FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite. diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index 975580a2..7951c178 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -285,12 +285,13 @@ namespace FreeSql.Internal.CommonProvider { return this; } public IUpdate Set(Expression> binaryExpression) { - if (binaryExpression?.Body is BinaryExpression == false) return this; + if (binaryExpression?.Body is BinaryExpression == false && + binaryExpression?.Body.NodeType != ExpressionType.Call) return this; var cols = new List(); var expt = _commonExpression.ExpressionWhereLambdaNoneForeignObject(null, cols, binaryExpression, null); if (cols.Any() == false) return this; foreach (var col in cols) { - if (col.Column.Attribute.IsNullable == true) { + if (col.Column.Attribute.IsNullable == true && col.Column.CsType.IsNullableType()) { var replval = _orm.CodeFirst.GetDbInfo(col.Column.CsType.GenericTypeArguments.FirstOrDefault())?.defaultValue; if (replval == null) continue; var replname = _commonUtils.QuoteSqlName(col.Column.Attribute.Name);