mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-24 21:13:46 +08:00
Update mongodb
This commit is contained in:
@@ -27,7 +27,7 @@ namespace MongoDb.Ado.data
|
||||
DbDataReaderFactoryAsync.Items.TryGetValue(operation, out var handler);
|
||||
if (handler == null)
|
||||
{
|
||||
await ExecuteHandlerFactoryAsync.HandlerAsync(operation, json, collection, cancellationToken);
|
||||
await ExecuteHandlerFactoryAsync.HandlerAsync(operation, json, collection, cancellationToken,new HandlerContext());
|
||||
return new DataTable().CreateDataReader();
|
||||
}
|
||||
handler.token = cancellationToken;
|
||||
|
@@ -11,6 +11,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class BulkWriteHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
|
@@ -10,6 +10,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class DeleteHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
|
@@ -11,6 +11,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class DeleteManyHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
|
@@ -3,6 +3,7 @@ using MongoDB.Bson;
|
||||
using MongoDB.Driver;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -24,7 +25,7 @@ namespace MongoDb.Ado.data
|
||||
};
|
||||
|
||||
|
||||
public static Task<int> HandlerAsync(string operation, string json, IMongoCollection<BsonDocument> collection,CancellationToken cancellationToken)
|
||||
public static Task<int> HandlerAsync(string operation, string json, IMongoCollection<BsonDocument> collection,CancellationToken cancellationToken, HandlerContext handlerContext)
|
||||
{
|
||||
MongoDbMethodUtils.ValidateOperation(operation);
|
||||
var handlers = ExecuteHandlerFactoryAsync.Items;
|
||||
@@ -33,6 +34,7 @@ namespace MongoDb.Ado.data
|
||||
throw new NotSupportedException($"不支持的操作类型: {operation}");
|
||||
handler.operation = operation;
|
||||
handler.token = cancellationToken;
|
||||
handler.context = handlerContext;
|
||||
return handler.HandleAsync(collection, json);
|
||||
}
|
||||
|
||||
|
@@ -12,6 +12,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
string operation { get; set; }
|
||||
CancellationToken token { get; set; }
|
||||
HandlerContext context { get; set; }
|
||||
|
||||
Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json);
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class InsertHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
|
@@ -6,17 +6,21 @@ using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
using System.Linq;
|
||||
|
||||
namespace MongoDb.Ado.data
|
||||
{
|
||||
public class InsertManyHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
{
|
||||
var documents = ParseJsonArray(json);
|
||||
await collection.InsertManyAsync(documents,null,token);
|
||||
var objectIds = documents.Select(it => it["_id"].AsObjectId.ToString()).ToArray();
|
||||
context.ids = objectIds;
|
||||
return documents.Count;
|
||||
}
|
||||
|
||||
|
@@ -10,6 +10,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class NonFindHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
|
||||
|
@@ -10,6 +10,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class UpdateHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
|
@@ -11,6 +11,7 @@ namespace MongoDb.Ado.data
|
||||
{
|
||||
public class UpdateManyHandlerAsync : IMongoOperationHandlerAsync
|
||||
{
|
||||
public HandlerContext context { get; set; }
|
||||
public CancellationToken token { get; set; }
|
||||
public string operation { get; set; }
|
||||
public async Task<int> HandleAsync(IMongoCollection<BsonDocument> collection, string json)
|
||||
|
@@ -79,11 +79,14 @@ namespace MongoDb.Ado.data
|
||||
return new DbDataReaderFactory().Handle(operation, collection, json);
|
||||
}
|
||||
|
||||
public override Task<int> ExecuteNonQueryAsync(CancellationToken cancellationToken)
|
||||
public async override Task<int> ExecuteNonQueryAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var (operation, collectionName, json) = ParseCommand(_commandText);
|
||||
var collection = GetCollection(collectionName);
|
||||
return ExecuteHandlerFactoryAsync.HandlerAsync(operation, json, collection, cancellationToken);
|
||||
var context = new HandlerContext();
|
||||
var result= await ExecuteHandlerFactoryAsync.HandlerAsync(operation, json, collection, cancellationToken,context);
|
||||
((MongoDbConnection)this.Connection).ObjectIds = context.ids;
|
||||
return result;
|
||||
}
|
||||
public override Task<object> ExecuteScalarAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
|
Reference in New Issue
Block a user