mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 优化 string[].Any(..) 表达式树解析;ReplaceParameterVisitor
This commit is contained in:
parent
e66c55569d
commit
6b9aa9dcef
@ -404,31 +404,31 @@ namespace base_entity
|
|||||||
var sql2rscs = Utils.ReplaceSqlConstString("'', 'SARTEN ACERO VITR.18CM''''GRAFIT''''', 'a",
|
var sql2rscs = Utils.ReplaceSqlConstString("'', 'SARTEN ACERO VITR.18CM''''GRAFIT''''', 'a",
|
||||||
pams, "@lantin1");
|
pams, "@lantin1");
|
||||||
|
|
||||||
using (IFreeSql client = CreateInstance(@"Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/accdb/2007.accdb", DataType.Odbc))
|
//using (IFreeSql client = CreateInstance(@"Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/accdb/2007.accdb", DataType.Odbc))
|
||||||
{
|
//{
|
||||||
client.Aop.AuditValue += (_, e) =>
|
// client.Aop.AuditValue += (_, e) =>
|
||||||
{
|
// {
|
||||||
if (e.Object is Dictionary<string, object> dict)
|
// if (e.Object is Dictionary<string, object> dict)
|
||||||
{
|
// {
|
||||||
foreach(var key in dict.Keys)
|
// foreach(var key in dict.Keys)
|
||||||
{
|
// {
|
||||||
var val = dict[key];
|
// var val = dict[key];
|
||||||
if (val == DBNull.Value) dict[key] = null;
|
// if (val == DBNull.Value) dict[key] = null;
|
||||||
}
|
// }
|
||||||
e.ObjectAuditBreak = true;
|
// e.ObjectAuditBreak = true;
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
Dictionary<string, object> data = new Dictionary<string, object>();
|
// Dictionary<string, object> data = new Dictionary<string, object>();
|
||||||
data.Add("ExpNo", "RSP0950008");
|
// data.Add("ExpNo", "RSP0950008");
|
||||||
data.Add("SPoint", "RSP0950004");
|
// data.Add("SPoint", "RSP0950004");
|
||||||
data.Add("EPoint", "RSP095000440");
|
// data.Add("EPoint", "RSP095000440");
|
||||||
data.Add("PType", "RS");
|
// data.Add("PType", "RS");
|
||||||
data.Add("GType", "窨井轮廓线");
|
// data.Add("GType", "窨井轮廓线");
|
||||||
data.Add("LineStyle", 2);
|
// data.Add("LineStyle", 2);
|
||||||
data.Add("Memo", DBNull.Value);
|
// data.Add("Memo", DBNull.Value);
|
||||||
data.Add("ClassID", DBNull.Value);
|
// data.Add("ClassID", DBNull.Value);
|
||||||
var kdkdksqlxx = client.InsertDict(data).AsTable("FZLINE").ToSql();
|
// var kdkdksqlxx = client.InsertDict(data).AsTable("FZLINE").ToSql();
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
|
||||||
BaseModel<User1>.fsql = 1;
|
BaseModel<User1>.fsql = 1;
|
||||||
@ -487,6 +487,16 @@ namespace base_entity
|
|||||||
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
//Func<string> getName1 = () => "xxx";
|
||||||
|
//fsql.GlobalFilter.Apply<User1>("fil1", a => a.Nickname == getName1());
|
||||||
|
//var gnsql2 = fsql.Select<User1>().ToSql();
|
||||||
|
|
||||||
|
var strs = new string[] { "a", "b", "c" };
|
||||||
|
var strssql1 = fsql.Select<User1>().Where(a => strs.Any(b => b == a.Nickname)).ToSql();
|
||||||
|
var strssql2 = fsql.Select<User1>().Where(a => strs.Any(b => a.Nickname.Contains(b))).ToSql();
|
||||||
|
var objs = new UserGroup[] { new UserGroup { GroupName = "a", Id = 1 }, new UserGroup { GroupName = "b", Id = 2 }, new UserGroup { GroupName = "c", Id = 3 } };
|
||||||
|
var objssql1 = fsql.Select<User1>().Where(a => objs.Any(b => b.GroupName == a.Nickname && b.Id == a.GroupId)).ToSql();
|
||||||
|
|
||||||
|
|
||||||
var tttsqlext01 = fsql.Select<User1>().ToSql(a => new
|
var tttsqlext01 = fsql.Select<User1>().ToSql(a => new
|
||||||
{
|
{
|
||||||
|
@ -2286,6 +2286,12 @@ namespace FreeSql.Internal
|
|||||||
return Expression.Property(_replaceExp, node.Member.Name);
|
return Expression.Property(_replaceExp, node.Member.Name);
|
||||||
return base.VisitMember(node);
|
return base.VisitMember(node);
|
||||||
}
|
}
|
||||||
|
protected override Expression VisitParameter(ParameterExpression node)
|
||||||
|
{
|
||||||
|
if (node == oldParameter)
|
||||||
|
return _replaceExp;
|
||||||
|
return base.VisitParameter(node);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ReplaceHzyTupleToMultiParam : ExpressionVisitor
|
public class ReplaceHzyTupleToMultiParam : ExpressionVisitor
|
||||||
|
Loading…
x
Reference in New Issue
Block a user