Compare commits

...

7 Commits

Author SHA1 Message Date
sunkaixuan
172fdd5cc7 Add demo 2025-08-05 16:55:50 +08:00
sunkaixuan
51b3aef82a Update mongodb 2025-08-05 16:55:37 +08:00
sunkaixuan
6b95b9339f Add demo 2025-08-05 16:25:39 +08:00
sunkaixuan
7661c53975 Update Mongodb 2025-08-05 16:25:32 +08:00
sunkaixuan
8fe3cbb328 Add demo 2025-08-05 13:06:33 +08:00
sunkaixuan
bd91c1d63b Update mongodb 2025-08-05 13:06:28 +08:00
sunkaixuan
287bf14604 Update gbase 2025-08-05 13:00:51 +08:00
9 changed files with 89 additions and 9 deletions

View File

@ -17,6 +17,7 @@ namespace MongoDbTest
QuerySelect2.Init();
QueryJson.Init();
QueryJson2.Init();
QueryJson3.Init();
QueryLeftJoin.Init();
QueryLeftJoin2.Init();
QueryLeftJoin3.Init();

View File

@ -23,7 +23,10 @@ namespace MongoDbTest
}).ExecuteCommand();
var data = db.Queryable<Student>().First();
var list=db.Queryable<Student>().Where(s => s.Book.SchoolId == data.Book.SchoolId).ToList();
if (list.Any() == false) Cases.ThrowUnitError();
if (list.Any() == false) Cases.ThrowUnitError();
var ids = new List<string>() { data.Book.SchoolId};
var list2 = db.Queryable<Student>().Where(s => ids.Contains( s.Book.SchoolId ) ).ToList();
if (list2.Any() == false) Cases.ThrowUnitError();
}
[SqlSugar.SugarTable("UnitStudentdddd1")]

View File

@ -24,6 +24,7 @@ namespace MongoDbTest
db.Updateable(list).ExecuteCommand();
var list2 = db.Queryable<Student>().ToList();
if (list2.First().Book[1] != 2.2) Cases.ThrowUnitError();
db.Insertable(new Student() { Book = null}).ExecuteCommand();
}
[SqlSugar.SugarTable("UnitStudentds79991")]

View File

@ -0,0 +1,44 @@

using MongoDbTest;
using SqlSugar;
public class QueryJson3
{
public static void Init()
{
var db = DbHelper.GetNewDb();
db.DbMaintenance.TruncateTable<NoticeEntity>();
db.Insertable<NoticeEntity>(new NoticeEntity() { Id = 12312312L, NoticeTitle = "88888", noticeContentInfos = new List<NoticeContentInfo>() { new NoticeContentInfo { SubjectId = 1 } } }).ExecuteCommand();
var da = db.Updateable<NoticeEntity>()
.SetColumns(it => new NoticeEntity { NoticeTitle = "66666" },true ).Where(it => it.Id == 12312312L)
.ExecuteCommand() > 0;
}
}
/// <summary>
/// 通知公告
/// </summary>
[SugarTable("NoticeInfoComponent")]
public class NoticeEntity
{
[SugarColumn(ColumnName = "_id")]
public long Id { get; set; }
/// <summary>
/// 通知公告标题
/// </summary>
public string NoticeTitle { get; set; } = null!;
/// <summary>
/// 通知公告内容
/// </summary>
[SugarColumn(IsJson = true)]
public List<NoticeContentInfo> noticeContentInfos { get; set; } = null!;
}
public class NoticeContentInfo
{
/// <summary>
/// 模块
/// </summary>
public int SubjectId { get; set; }
}

View File

@ -123,11 +123,8 @@ namespace SqlSugar.GBase
using (var dataReader = await this.GetDataReaderAsync(sqlString, Parameters))
{
DbDataReader DbReader = (DbDataReader)dataReader;
List<T> result = new List<T>();
if (DbReader.HasRows)
{
result = await GetDataAsync<T>(typeof(T), dataReader);
}
List<T> result = new List<T>();
result = await GetDataAsync<T>(typeof(T), dataReader);
List<T2> result2 = null;
if (NextResult(dataReader))
{

View File

@ -2,7 +2,7 @@
<package >
<metadata>
<id>SqlSugar.GBaseCore</id>
<version>5.1.4.201-preview02</version>
<version>5.1.4.201-preview03</version>
<authors>sunkaixuan</authors>
<owners>Landa</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>

View File

@ -37,5 +37,33 @@ namespace SqlSugar.MongoDb
this.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>("$set", expResult));
return this;
}
public override IUpdateable<T> SetColumns(Expression<Func<T, T>> columns, bool appendColumnsByDataFilter)
{
ThrowUpdateByObject();
var expResult = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Update)
.GetResultString();
if (appendColumnsByDataFilter)
{
var newData = new T() { };
SqlSugar.UtilMethods.ClearPublicProperties(newData, this.EntityInfo);
var data = ((UpdateableProvider<T>)this.Context.Updateable(newData)).UpdateObjs.First();
foreach (var item in this.EntityInfo.Columns.Where(it => !it.IsPrimarykey && !it.IsIgnore && !it.IsOnlyIgnoreUpdate))
{
var value = item.PropertyInfo.GetValue(data);
if (value != null && !value.Equals(""))
{
if (!value.Equals(SqlSugar.UtilMethods.GetDefaultValue(item.UnderType)))
{
var pName = this.SqlBuilder.SqlParameterKeyWord + item.PropertyName + 1000;
var p = new SugarParameter(pName, value);
this.UpdateBuilder.Parameters.Add(p);
UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>(SqlBuilder.GetTranslationColumnName(item.DbColumnName), SqlBuilder.GetTranslationColumnName(item.DbColumnName) + "=" + pName));
}
}
}
}
this.UpdateBuilder.SetValues.Add(new KeyValuePair<string, string>("$set", expResult));
return this;
}
}
}

View File

@ -120,6 +120,8 @@ namespace SqlSugar.MongoDb
public static BsonValue ParseJsonObject(object json)
{
if (json == null)
return BsonValue.Create(null);
if (json is string str && str.TrimStart().StartsWith("{"))
{
var arrayObj = BsonDocument.Parse(str);
@ -139,10 +141,14 @@ namespace SqlSugar.MongoDb
var utcNow = DateTime.SpecifyKind(dt, DateTimeKind.Utc);
return new BsonDateTime(utcNow);
}
else if (value is Guid g)
else if (value is Guid g)
{
value = g.ToString();
}
else if (value is string s&&IsValidObjectId(s))
{
value = ObjectId.Parse(s);
}
return BsonValue.Create(value);
}
internal static MongoDB.Bson.IO.JsonWriterSettings GetJsonWriterSettings()

View File

@ -2,7 +2,7 @@
<package >
<metadata>
<id>SqlSugar.MongoDbCore</id>
<version>5.1.4.238</version>
<version>5.1.4.242</version>
<authors>sunkaixuan</authors>
<owners>果糖大数据</owners>
<licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl>