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
06d2db0368
commit
1e4ca247c6
@ -44,8 +44,10 @@ namespace MongoDbTest
|
|||||||
if(list2.First().date!=dt.ToString("yyyy-MM-dd")) Cases.ThrowUnitError();
|
if(list2.First().date!=dt.ToString("yyyy-MM-dd")) Cases.ThrowUnitError();
|
||||||
var list3 = db.Queryable<Student>().Select(it => new
|
var list3 = db.Queryable<Student>().Select(it => new
|
||||||
{
|
{
|
||||||
date = it.Age.ToString()
|
date = it.Age.ToString(),
|
||||||
}).ToList();
|
int32 = Convert.ToInt32(it.Age),
|
||||||
|
dateTime = Convert.ToDateTime(it.CreateDateTime),
|
||||||
|
}).ToList(); ;
|
||||||
}
|
}
|
||||||
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
|
[SqlSugar.SugarTable("UnitStudent1231sds3z1")]
|
||||||
public class Student : MongoDbBase
|
public class Student : MongoDbBase
|
||||||
|
@ -25,6 +25,8 @@ namespace SqlSugar.MongoDb
|
|||||||
{
|
{
|
||||||
var methodCallExpression = expr as MethodCallExpression;
|
var methodCallExpression = expr as MethodCallExpression;
|
||||||
var name = methodCallExpression.Method.Name;
|
var name = methodCallExpression.Method.Name;
|
||||||
|
if (name == "ToDateTime")
|
||||||
|
name = "ToDate";
|
||||||
BsonValue result = null;
|
BsonValue result = null;
|
||||||
if (typeof(IDbMethods).GetMethods().Any(it => it.Name == name))
|
if (typeof(IDbMethods).GetMethods().Any(it => it.Name == name))
|
||||||
{
|
{
|
||||||
@ -42,6 +44,11 @@ namespace SqlSugar.MongoDb
|
|||||||
var funcString = context.ToString(model);
|
var funcString = context.ToString(model);
|
||||||
result = BsonDocument.Parse(funcString);
|
result = BsonDocument.Parse(funcString);
|
||||||
}
|
}
|
||||||
|
else if (name.StartsWith("To"))
|
||||||
|
{
|
||||||
|
var value = context.GetType().GetMethod(name).Invoke(context, new object[] { model });
|
||||||
|
result = BsonDocument.Parse(value?.ToString());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var funcString = context.GetType().GetMethod(name).Invoke(context, new object[] { model });
|
var funcString = context.GetType().GetMethod(name).Invoke(context, new object[] { model });
|
||||||
|
@ -160,7 +160,7 @@ namespace SqlSugar.MongoDb
|
|||||||
public MongoNestedTranslatorContext context { get; set; }
|
public MongoNestedTranslatorContext context { get; set; }
|
||||||
public override string ToInt32(MethodCallExpressionModel model)
|
public override string ToInt32(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item =model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
var toIntDoc = new BsonDocument("$toInt", $"${memberName}");
|
var toIntDoc = new BsonDocument("$toInt", $"${memberName}");
|
||||||
return toIntDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
return toIntDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
||||||
@ -168,7 +168,7 @@ namespace SqlSugar.MongoDb
|
|||||||
|
|
||||||
public override string ToInt64(MethodCallExpressionModel model)
|
public override string ToInt64(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item = model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
var toLongDoc = new BsonDocument("$toLong", $"${memberName}");
|
var toLongDoc = new BsonDocument("$toLong", $"${memberName}");
|
||||||
return toLongDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
return toLongDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
||||||
@ -176,7 +176,7 @@ namespace SqlSugar.MongoDb
|
|||||||
|
|
||||||
public override string ToGuid(MethodCallExpressionModel model)
|
public override string ToGuid(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item = model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
// MongoDB 没有直接的 Guid 类型,通常以字符串存储
|
// MongoDB 没有直接的 Guid 类型,通常以字符串存储
|
||||||
var toStringDoc = new BsonDocument("$toString", $"${memberName}");
|
var toStringDoc = new BsonDocument("$toString", $"${memberName}");
|
||||||
@ -185,7 +185,7 @@ namespace SqlSugar.MongoDb
|
|||||||
|
|
||||||
public override string ToDouble(MethodCallExpressionModel model)
|
public override string ToDouble(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item = model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
var toDoubleDoc = new BsonDocument("$toDouble", $"${memberName}");
|
var toDoubleDoc = new BsonDocument("$toDouble", $"${memberName}");
|
||||||
return toDoubleDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
return toDoubleDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
||||||
@ -193,7 +193,7 @@ namespace SqlSugar.MongoDb
|
|||||||
|
|
||||||
public override string ToBool(MethodCallExpressionModel model)
|
public override string ToBool(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item = model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
var toBoolDoc = new BsonDocument("$toBool", $"${memberName}");
|
var toBoolDoc = new BsonDocument("$toBool", $"${memberName}");
|
||||||
return toBoolDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
return toBoolDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
||||||
@ -201,7 +201,7 @@ namespace SqlSugar.MongoDb
|
|||||||
|
|
||||||
public override string ToDate(MethodCallExpressionModel model)
|
public override string ToDate(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item = model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
var toDateDoc = new BsonDocument("$toDate", $"${memberName}");
|
var toDateDoc = new BsonDocument("$toDate", $"${memberName}");
|
||||||
return toDateDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
return toDateDoc.ToJson(UtilMethods.GetJsonWriterSettings());
|
||||||
@ -209,7 +209,7 @@ namespace SqlSugar.MongoDb
|
|||||||
|
|
||||||
public override string ToTime(MethodCallExpressionModel model)
|
public override string ToTime(MethodCallExpressionModel model)
|
||||||
{
|
{
|
||||||
var item = model.DataObject as Expression;
|
var item = model.Args[0].MemberValue;
|
||||||
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
BsonValue memberName = new ExpressionVisitor(context).Visit(item as Expression);
|
||||||
// MongoDB 没有单独的 Time 类型,通常用字符串或日期处理
|
// MongoDB 没有单独的 Time 类型,通常用字符串或日期处理
|
||||||
var toStringDoc = new BsonDocument("$toString", $"${memberName}");
|
var toStringDoc = new BsonDocument("$toString", $"${memberName}");
|
||||||
|
Loading…
Reference in New Issue
Block a user