mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-06-28 04:35:29 +08:00
Update mongodb
This commit is contained in:
parent
8a0c1a3147
commit
84d91cdcf5
@ -2,6 +2,7 @@
|
||||
using MongoDB.Driver;
|
||||
using MongoDB.Driver.Linq;
|
||||
using MongoDbTest.DBHelper;
|
||||
using SqlSugar;
|
||||
using SqlSugar.MongoDb;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@ -114,6 +115,12 @@ namespace MongoDbTest
|
||||
}).ToList();
|
||||
if (list11.First().Age != 12) Cases.ThrowUnitError();
|
||||
if (list11.First().Age2 != 13) Cases.ThrowUnitError();
|
||||
|
||||
var list12= db.Queryable<Student>().Select(it => new
|
||||
{
|
||||
Age = -it.Age
|
||||
}).ToList();
|
||||
if(list12.First().Age!=-11) Cases.ThrowUnitError();
|
||||
}
|
||||
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
|
||||
public class Student : MongoDbBase
|
||||
|
@ -27,7 +27,15 @@ namespace SqlSugar.MongoDb
|
||||
public BsonValue Visit(Expression expr)
|
||||
{
|
||||
expr = MongoDbExpTools.RemoveConvert(expr);
|
||||
|
||||
if (expr.NodeType == ExpressionType.Negate)
|
||||
{
|
||||
expr=(expr as UnaryExpression).Operand;
|
||||
var value=new ExpressionVisitor(context,visitorContext).Visit(expr);
|
||||
var isMemember = MongoDbExpTools.GetIsMemember(expr);
|
||||
if (isMemember)
|
||||
value = $"${value}";
|
||||
return new BsonDocument("$multiply", new BsonArray { -1, value });
|
||||
}
|
||||
switch (expr)
|
||||
{
|
||||
case BinaryExpression binary:
|
||||
@ -51,6 +59,6 @@ namespace SqlSugar.MongoDb
|
||||
default:
|
||||
throw new NotSupportedException($"Unsupported expression: {expr.NodeType}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -73,6 +73,11 @@ namespace SqlSugar.MongoDb
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static bool GetIsMemember(Expression expr)
|
||||
{
|
||||
return expr is MemberExpression member && member.Expression is ParameterExpression;
|
||||
}
|
||||
internal static Expression RemoveConvert(Expression item)
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
|
@ -7,7 +7,8 @@ using System.Text;
|
||||
namespace SqlSugar.MongoDb
|
||||
{
|
||||
public partial class BinaryExpressionTranslator
|
||||
{
|
||||
{
|
||||
|
||||
private static bool IsEq(string op)
|
||||
{
|
||||
return op == "$eq";
|
||||
|
Loading…
Reference in New Issue
Block a user