mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-07 00:40:55 +08:00
- 调整 ZeroDbContext Dictionary -> IDictionary
This commit is contained in:
@@ -82,21 +82,61 @@
|
||||
举例2:RightJoin("table1", "id", "user.id", "xid", "user.xid") -> RIGTH JOIN [table1] b ON b.[id] = [a].id] AND b.[xid] = a.[xid]
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.Where(System.Collections.Generic.IEnumerable{System.Collections.Generic.Dictionary{System.String,System.Object}})">
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.Where(System.Collections.Generic.IEnumerable{System.Collections.Generic.IDictionary{System.String,System.Object}})">
|
||||
<summary>
|
||||
WHERE [Id] IN (...)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.Where(System.Object)">
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.WhereIn(System.String,System.Object)">
|
||||
<summary>
|
||||
Where(new { Year = 2017, CategoryId = 198, IsPublished = true })<para></para>
|
||||
WHERE [Year] = 2017 AND [CategoryId] = 198 AND [IsPublished] = 1
|
||||
WHERE [field] IN (...)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.WhereNotIn(System.String,System.Object)">
|
||||
<summary>
|
||||
WHERE [field] NOT IN (...)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.WhereDynamic(System.Object)">
|
||||
<summary>
|
||||
匿名对象:Where(new { Year = 2017, CategoryId = 198, IsPublished = true })<para></para>
|
||||
字典对象:Where(new Dictionary<string, object> { ["Year"] = 2017, ["CategoryId"] = 198, ["IsPublished"] = true })<para></para>
|
||||
WHERE [Year] = 2017 AND [CategoryId] = 198 AND [IsPublished] = 1<para></para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.Where(System.String,System.Object)">
|
||||
<summary>
|
||||
WHERE [field] = ..
|
||||
WHERE [field] = ..<para></para>
|
||||
更全请看重载 Where(string field, string @operator, object value)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.Where(System.String,System.String,System.Object)">
|
||||
<summary>
|
||||
WHERE [field] <para></para>
|
||||
!=、>、>=、<、<=、like、!like、in、!in<para></para>
|
||||
</summary>
|
||||
<param name="field"></param>
|
||||
<param name="operator"></param>
|
||||
<param name="value"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.WhereColumns(System.String,System.String,System.String)">
|
||||
<summary>
|
||||
WHERE 字段与字段
|
||||
</summary>
|
||||
<param name="field1"></param>
|
||||
<param name="operator"></param>
|
||||
<param name="field2"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.WhereExists(System.Func{FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl.SubQuery,FreeSql.Extensions.ZeroEntity.ZeroDbContext.SelectImpl})">
|
||||
<summary>
|
||||
WHERE exists(select ...)
|
||||
</summary>
|
||||
<param name="q"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
@@ -8,7 +8,7 @@ using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using T = System.Collections.Generic.Dictionary<string, object>;
|
||||
using T = System.Collections.Generic.IDictionary<string, object>;
|
||||
|
||||
namespace FreeSql.Extensions.ZeroEntity
|
||||
{
|
||||
@@ -249,7 +249,7 @@ namespace FreeSql.Extensions.ZeroEntity
|
||||
T FetchResult(DbDataReader reader)
|
||||
{
|
||||
var fieldIndex = 0;
|
||||
var result = new T();
|
||||
T result = new Dictionary<string, object>();
|
||||
for (var aliasIndex = 0; aliasIndex < _tableAlias.Count; aliasIndex++)
|
||||
{
|
||||
var navValue = result;
|
||||
@@ -281,7 +281,7 @@ namespace FreeSql.Extensions.ZeroEntity
|
||||
fieldIndex += _tableAlias[aliasIndex].Table.Columns.Count;
|
||||
continue;
|
||||
}
|
||||
drctx.Result = new T();
|
||||
drctx.Result = new Dictionary<string, object>();
|
||||
navValue[_tableAlias[aliasIndex].NavPath.LastOrDefault()] = drctx.Result;
|
||||
}
|
||||
_fieldReader[aliasIndex](drctx);
|
||||
@@ -603,7 +603,7 @@ namespace FreeSql.Extensions.ZeroEntity
|
||||
public SelectImpl WhereDynamic(object dywhere)
|
||||
{
|
||||
if (dywhere == null) return this;
|
||||
if (dywhere is Dictionary<string, object> dict)
|
||||
if (dywhere is IDictionary<string, object> dict)
|
||||
{
|
||||
foreach(var kv in dict)
|
||||
WhereDynamicFilter(new DynamicFilterInfo { Field = kv.Key, Operator = DynamicFilterOperator.Eq, Value = kv.Value });
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Collections.Generic;
|
||||
using System.Data.Common;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using T = System.Collections.Generic.Dictionary<string, object>;
|
||||
using T = System.Collections.Generic.IDictionary<string, object>;
|
||||
|
||||
namespace FreeSql.Extensions.ZeroEntity
|
||||
{
|
||||
@@ -607,7 +607,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
{
|
||||
var valueEach = _AuditJsonElementMethodJsonElementEnumerateObject.Invoke(value, new object[0]) as IEnumerable;
|
||||
if (valueEach == null) return resetValue?.Invoke(null);
|
||||
var newValue = new T();
|
||||
var newValue = new Dictionary<string, object>();
|
||||
foreach (var valueItem in valueEach)
|
||||
{
|
||||
if (valueItem == null) continue;
|
||||
@@ -1101,7 +1101,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
|
||||
var key = GetEntityKeyString(table, entityFrom);
|
||||
if (key == null) return;
|
||||
var state = new EntityState(new T(), key);
|
||||
var state = new EntityState(new Dictionary<string, object>(), key);
|
||||
|
||||
LocalMapEntityValue(table, entityFrom, state.Value);
|
||||
|
||||
@@ -1140,7 +1140,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
//entityTo.Remove(nav.Key);
|
||||
continue;
|
||||
}
|
||||
var valTo = new T();
|
||||
var valTo = new Dictionary<string, object>();
|
||||
SetNavigateRelationshipValue(nav.Value, entityFrom, valFrom);
|
||||
if (LocalMapEntityValue(nav.Value.RefTable, valFrom, valTo))
|
||||
entityTo[nav.Key] = valTo;
|
||||
@@ -1159,7 +1159,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
foreach (var fromObj in valFromList)
|
||||
{
|
||||
if (fromObj is T fromItem == false || fromItem == null) continue;
|
||||
var toItem = new T();
|
||||
var toItem = new Dictionary<string, object>();
|
||||
if (LocalMapEntityValue(nav.Value.RefTable, fromItem, toItem))
|
||||
valTo.Add(toItem);
|
||||
}
|
||||
@@ -1179,7 +1179,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
{
|
||||
if (fromObj is T fromItem == false || fromItem == null) continue;
|
||||
LocalAttachCascade(nav.Value.RefTable, fromItem, includeOutside); //创建新的 states
|
||||
var toItem = new T();
|
||||
var toItem = new Dictionary<string, object>();
|
||||
foreach (var col in nav.Value.RefTable.Primarys) //多对多状态只存储 PK
|
||||
if (fromItem.TryGetValue(col.CsName, out var colval))
|
||||
toItem[col.CsName] = colval;
|
||||
@@ -1197,7 +1197,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
continue;
|
||||
}
|
||||
LocalAttachCascade(nav.Value.RefTable, valFrom, includeOutside); //创建新的 states
|
||||
var valTo = new T();
|
||||
var valTo = new Dictionary<string, object>();
|
||||
foreach (var col in nav.Value.RefTable.Columns.Values)
|
||||
if (valFrom.TryGetValue(col.CsName, out var colval))
|
||||
valTo[col.CsName] = colval;
|
||||
@@ -1568,7 +1568,7 @@ ManyToMany 级联删除中间表(注意不删除外部根)
|
||||
foreach (var ritem in rights)
|
||||
{
|
||||
if (ritem is T right == false || right == null) continue;
|
||||
var midval = new T();
|
||||
var midval = new Dictionary<string, object>();
|
||||
for (var x = 0; x < nav.Columns.Count; x++)
|
||||
if (entity.TryGetValue(nav.Columns[x], out var colval))
|
||||
midval[nav.MiddleColumns[x]] = colval;
|
||||
|
||||
Reference in New Issue
Block a user