mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-06-28 13:34:32 +08:00
Update mongodb
This commit is contained in:
parent
d3d0315dd5
commit
21ac096d00
@ -164,6 +164,13 @@ namespace MongoDbTest
|
|||||||
name = it.Name.Substring(0,1),
|
name = it.Name.Substring(0,1),
|
||||||
}).ToList();
|
}).ToList();
|
||||||
if(list17.First().name2!="a2"||list17.First().name.Substring(0,1)!= list17.First().name) Cases.ThrowUnitError();
|
if(list17.First().name2!="a2"||list17.First().name.Substring(0,1)!= list17.First().name) Cases.ThrowUnitError();
|
||||||
|
|
||||||
|
var list18 = db.Queryable<Student>()
|
||||||
|
.Select(it => new
|
||||||
|
{
|
||||||
|
name = it.Name.Length,
|
||||||
|
}).ToList();
|
||||||
|
if(list18.Max(it=>it.name)!=2) Cases.ThrowUnitError();
|
||||||
}
|
}
|
||||||
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
|
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
|
||||||
public class Student : MongoDbBase
|
public class Student : MongoDbBase
|
||||||
|
@ -38,7 +38,15 @@ namespace SqlSugar.MongoDb
|
|||||||
var value = ExpressionTool.GetMemberValue(oldMember.Member, oldExp);
|
var value = ExpressionTool.GetMemberValue(oldMember.Member, oldExp);
|
||||||
return UtilMethods.MyCreate(value);
|
return UtilMethods.MyCreate(value);
|
||||||
}
|
}
|
||||||
else if (!string.IsNullOrEmpty(BinaryExpressionTranslator.GetSystemDateMemberName(expr)))
|
else if (IsLength(oldMember))
|
||||||
|
{
|
||||||
|
var memberExp = (expr as MemberExpression);
|
||||||
|
var method = new MongoDbMethod() { context = _context };
|
||||||
|
var model = new MethodCallExpressionModel() { Args = new List<MethodCallExpressionArgs>() };
|
||||||
|
model.Args.Add(new MethodCallExpressionArgs() { MemberValue = memberExp.Expression });
|
||||||
|
return BsonDocument.Parse(method.Length(model));
|
||||||
|
}
|
||||||
|
else if (IsDateProperty(expr))
|
||||||
{
|
{
|
||||||
var memberExp = (expr as MemberExpression);
|
var memberExp = (expr as MemberExpression);
|
||||||
var method = new MongoDbMethod() { context = _context };
|
var method = new MongoDbMethod() { context = _context };
|
||||||
@ -58,6 +66,26 @@ namespace SqlSugar.MongoDb
|
|||||||
return ExtractFieldPath(expr);
|
return ExtractFieldPath(expr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool IsDateProperty(Expression expr)
|
||||||
|
{
|
||||||
|
return !string.IsNullOrEmpty(BinaryExpressionTranslator.GetSystemDateMemberName(expr));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsLength(MemberExpression oldMember)
|
||||||
|
{
|
||||||
|
if (oldMember.Member.Name != "Length")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var expressionType = oldMember.Expression?.Type;
|
||||||
|
if (expressionType == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return expressionType.IsArray
|
||||||
|
|| expressionType == typeof(string)
|
||||||
|
|| expressionType.FullName == "System.Span`1"
|
||||||
|
|| expressionType.FullName == "System.ReadOnlySpan`1";
|
||||||
|
}
|
||||||
|
|
||||||
private BsonValue ExtractFieldPath(Expression expr)
|
private BsonValue ExtractFieldPath(Expression expr)
|
||||||
{
|
{
|
||||||
var parts = new Stack<string>();
|
var parts = new Stack<string>();
|
||||||
|
Loading…
Reference in New Issue
Block a user