From e132133e62f184ad7cc8ac0c4b4a7168b6336223 Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Thu, 12 Mar 2020 00:45:56 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20IAdo.Query=20=E6=96=B9?=
=?UTF-8?q?=E6=B3=95=EF=BC=8C=E5=BD=93=E4=BC=A0=E5=85=A5=E5=B8=A6=E4=B8=BB?=
=?UTF-8?q?=E9=94=AE=E7=89=B9=E6=80=A7=E7=9A=84=E5=AE=9E=E4=BD=93=E6=97=B6?=
=?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=E4=B8=BB=E9=94=AE=E5=88=97=E4=B8=BA?=
=?UTF-8?q?=20null=20=E6=97=B6=E5=AF=BC=E8=87=B4=E6=95=B4=E8=A1=8C?=
=?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=B9=9F=E4=B8=BA=20null=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.DbContext/FreeSql.DbContext.xml | 7 ++
FreeSql/FreeSql.xml | 80 +++++++++++--------
.../CommonProvider/AdoProvider/AdoProvider.cs | 30 +++----
.../AdoProvider/AdoProviderAsync.cs | 30 +++----
FreeSql/Internal/UtilsExpressionTree.cs | 3 +-
5 files changed, 85 insertions(+), 65 deletions(-)
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 2735cefb..ca7c357b 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -110,6 +110,13 @@
清空状态数据
+
+
+ 根据 lambda 条件删除数据
+
+
+
+
添加
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 89c147ea..ee325756 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -2953,40 +2953,6 @@
-
-
- C#:从元组集合中查找 exp1, exp2 是否存在
- SQL:
- exp1 = that[0].Item1 and exp2 = that[0].Item2 OR
- exp1 = that[1].Item1 and exp2 = that[1].Item2 OR
- ...
- 注意:当 that 为 null 或 empty 时,返回 1=0
-
-
-
-
-
-
-
-
-
-
- C#:从元组集合中查找 exp1, exp2, exp2 是否存在
- SQL:
- exp1 = that[0].Item1 and exp2 = that[0].Item2 and exp3 = that[0].Item3 OR
- exp1 = that[1].Item1 and exp2 = that[1].Item2 and exp3 = that[1].Item3 OR
- ...
- 注意:当 that 为 null 或 empty 时,返回 1=0
-
-
-
-
-
-
-
-
-
-
测量两个经纬度的距离,返回单位:米
@@ -3251,3 +3217,49 @@
+完成(可能)被其他线程事务自动提交
+
+ 事务体 () => {}
+
+
+
+ 开启事务(不支持异步)
+
+ 超时,未执行完成(可能)被其他线程事务自动提交
+ 事务体 () => {}
+
+
+
+ 开启事务(不支持异步)
+
+
+ 事务体 () => {}
+ 超时,未执行完成(可能)被其他线程事务自动提交
+
+
+
+ 数据库访问对象
+
+
+
+
+ 所有拦截方法都在这里
+
+
+
+
+ CodeFirst 模式开发相关方法
+
+
+
+
+ DbFirst 模式开发相关方法
+
+
+
+
+ 全局过滤设置,可默认附加为 Select/Update/Delete 条件
+
+
+
+
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
index 45db5750..2f2facd5 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
@@ -105,7 +105,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (indexes == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -148,7 +148,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -165,7 +165,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -216,7 +216,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -233,7 +233,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -250,7 +250,7 @@ namespace FreeSql.Internal.CommonProvider
case 2:
if (indexes3 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -307,7 +307,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -324,7 +324,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -341,7 +341,7 @@ namespace FreeSql.Internal.CommonProvider
case 2:
if (indexes3 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -358,7 +358,7 @@ namespace FreeSql.Internal.CommonProvider
case 3:
if (indexes4 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -421,7 +421,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -438,7 +438,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -455,7 +455,7 @@ namespace FreeSql.Internal.CommonProvider
case 2:
if (indexes3 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -472,7 +472,7 @@ namespace FreeSql.Internal.CommonProvider
case 3:
if (indexes4 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -489,7 +489,7 @@ namespace FreeSql.Internal.CommonProvider
case 4:
if (indexes5 == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs
index 7297122d..bc8b96b6 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderAsync.cs
@@ -31,7 +31,7 @@ namespace FreeSql.Internal.CommonProvider
{
if (indexes == null)
{
- var sbflag = new StringBuilder().Append("query");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -75,7 +75,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -92,7 +92,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -144,7 +144,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -161,7 +161,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -178,7 +178,7 @@ namespace FreeSql.Internal.CommonProvider
case 2:
if (indexes3 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -236,7 +236,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -253,7 +253,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -270,7 +270,7 @@ namespace FreeSql.Internal.CommonProvider
case 2:
if (indexes3 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -287,7 +287,7 @@ namespace FreeSql.Internal.CommonProvider
case 3:
if (indexes4 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -351,7 +351,7 @@ namespace FreeSql.Internal.CommonProvider
case 0:
if (indexes1 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -368,7 +368,7 @@ namespace FreeSql.Internal.CommonProvider
case 1:
if (indexes2 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -385,7 +385,7 @@ namespace FreeSql.Internal.CommonProvider
case 2:
if (indexes3 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -402,7 +402,7 @@ namespace FreeSql.Internal.CommonProvider
case 3:
if (indexes4 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
@@ -419,7 +419,7 @@ namespace FreeSql.Internal.CommonProvider
case 4:
if (indexes5 == null)
{
- var sbflag = new StringBuilder().Append("QueryAsync");
+ var sbflag = new StringBuilder().Append("adoQuery");
var dic = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
for (var a = 0; a < dr.FieldCount; a++)
{
diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs
index 6738bcf9..2823edcd 100644
--- a/FreeSql/Internal/UtilsExpressionTree.cs
+++ b/FreeSql/Internal/UtilsExpressionTree.cs
@@ -1495,7 +1495,8 @@ namespace FreeSql.Internal
//判断主键为空,则整个对象不读取
//blockExp.Add(Expression.Assign(readpkvalExp, Expression.Call(rowExp, MethodDataReaderGetValue, dataIndexExp)));
- if (trycol?.Attribute.IsPrimary == true)
+ if (flagStr.StartsWith("adoQuery") == false && //Ado.Query 的时候不作此判断
+ trycol?.Attribute.IsPrimary == true) //若主键值为 null,则整行读取出来的对象为 null
{
ispkExp.Add(
Expression.IfThen(