mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-20 09:28:53 +08:00
Compare commits
7 Commits
78c2f1840d
...
172fdd5cc7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
172fdd5cc7 | ||
|
|
51b3aef82a | ||
|
|
6b95b9339f | ||
|
|
7661c53975 | ||
|
|
8fe3cbb328 | ||
|
|
bd91c1d63b | ||
|
|
287bf14604 |
@ -17,6 +17,7 @@ namespace MongoDbTest
|
||||
QuerySelect2.Init();
|
||||
QueryJson.Init();
|
||||
QueryJson2.Init();
|
||||
QueryJson3.Init();
|
||||
QueryLeftJoin.Init();
|
||||
QueryLeftJoin2.Init();
|
||||
QueryLeftJoin3.Init();
|
||||
|
||||
@ -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")]
|
||||
|
||||
@ -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")]
|
||||
|
||||
44
Src/Asp.NetCore2/MongoDbTest/UnitTest/UnitJson3.cs
Normal file
44
Src/Asp.NetCore2/MongoDbTest/UnitTest/UnitJson3.cs
Normal 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; }
|
||||
}
|
||||
@ -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))
|
||||
{
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user