Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 592c30ed2c | |||
| 83f1d2c7a6 | |||
| ab294d1a5d | |||
| dd8cbe3da7 | |||
| 0844c51566 | |||
| 601c0fd02d | |||
| 91d15312e6 | |||
| 54b2a63a8e | |||
| dbb27aad39 | |||
| afd0308849 | |||
| 9cb35c5881 |
@@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" />
|
<PackageReference Include="Microsoft.AspNetCore.Identity" Version="2.1.2" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.2" />
|
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="2.1.2" />
|
||||||
<PackageReference Include="MongoDB.Driver" Version="2.9.3" />
|
<PackageReference Include="MongoDB.Driver" Version="2.9.3" />
|
||||||
<PackageReference Include="MongoDbGenericRepository" Version="1.4.1" />
|
<PackageReference Include="MongoDbGenericRepository" Version="1.4.4" />
|
||||||
<PackageReference Include="xunit" Version="2.4.1" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.console" Version="2.4.1">
|
<PackageReference Include="xunit.runner.console" Version="2.4.1">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
|
|||||||
+1
-155
@@ -12,7 +12,7 @@ using Xunit;
|
|||||||
|
|
||||||
namespace CoreIntegrationTests.Infrastructure
|
namespace CoreIntegrationTests.Infrastructure
|
||||||
{
|
{
|
||||||
public abstract class MongoDbDocumentTestBase<T> :
|
public abstract partial class MongoDbDocumentTestBase<T> :
|
||||||
IClassFixture<MongoDbTestFixture<T, Guid>>
|
IClassFixture<MongoDbTestFixture<T, Guid>>
|
||||||
where T : TestDoc, new()
|
where T : TestDoc, new()
|
||||||
{
|
{
|
||||||
@@ -347,160 +347,6 @@ namespace CoreIntegrationTests.Infrastructure
|
|||||||
|
|
||||||
#endregion Read
|
#endregion Read
|
||||||
|
|
||||||
#region Update
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOne()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
document.SomeContent = content;
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T>(document);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneAsync()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
document.SomeContent = content;
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T>(document);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOneField()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T, string>(document, x => x.SomeContent, content);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneFieldAsync()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T, string>(document, x => x.SomeContent, content);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOneFieldWithFilter()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneFieldWithFilterAsync()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneAsyncWithUpdateDefinition()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var childrenToAdd = new List<Child>
|
|
||||||
{
|
|
||||||
new Child("testType1", "testValue1"),
|
|
||||||
new Child("testType2", "testValue2")
|
|
||||||
};
|
|
||||||
|
|
||||||
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T>(document, updateDef);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument);
|
|
||||||
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOneWithUpdateDefinition()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T>(document);
|
|
||||||
var childrenToAdd = new List<Child>
|
|
||||||
{
|
|
||||||
new Child("testType1", "testValue1"),
|
|
||||||
new Child("testType2", "testValue2")
|
|
||||||
};
|
|
||||||
|
|
||||||
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T>(document, updateDef);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument);
|
|
||||||
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Update
|
|
||||||
|
|
||||||
#region Delete
|
#region Delete
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -0,0 +1,381 @@
|
|||||||
|
using MongoDB.Driver;
|
||||||
|
using MongoDbGenericRepository;
|
||||||
|
using MongoDbGenericRepository.Models;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace CoreIntegrationTests.Infrastructure
|
||||||
|
{
|
||||||
|
public abstract partial class MongoDbDocumentTestBase<T> :
|
||||||
|
IClassFixture<MongoDbTestFixture<T, Guid>>
|
||||||
|
where T : TestDoc, new()
|
||||||
|
{
|
||||||
|
#region Update One
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOne()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
document.SomeContent = content;
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T>(document);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
document.SomeContent = content;
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T>(document);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOneField()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T, string>(document, x => x.SomeContent, content);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneFieldAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T, string>(document, x => x.SomeContent, content);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOneFieldWithFilter()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneFieldWithFilterAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneAsyncWithUpdateDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T>(document, updateDef);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument);
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOneWithUpdateDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T>(document);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T>(document, updateDef);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument);
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Update One
|
||||||
|
|
||||||
|
#region Update Many
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithLinqFilterAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T, string>(x => docIds.Contains(x.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithFilterDefinitionAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T, string>(filterDefinition, x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithLinqFilterAndUpdateDefinitionAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T>(x => docIds.Contains(x.Id), updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithFilterAndUpdateDefinitionsAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T>(filterDefinition, updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithLinqFilter()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T, string>(x => docIds.Contains(x.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithFilterDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T, string>(filterDefinition, x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithLinqFilterAndUpdateDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T>(x => docIds.Contains(x.Id), updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithFilterAndUpdateDefinitions()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T>(documents);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T>(filterDefinition, updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion Update Many
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-155
@@ -12,7 +12,7 @@ using Xunit;
|
|||||||
|
|
||||||
namespace CoreIntegrationTests.Infrastructure
|
namespace CoreIntegrationTests.Infrastructure
|
||||||
{
|
{
|
||||||
public abstract class MongoDbTKeyDocumentTestBase<T, TKey> :
|
public abstract partial class MongoDbTKeyDocumentTestBase<T, TKey> :
|
||||||
IClassFixture<MongoDbTestFixture<T, TKey>>
|
IClassFixture<MongoDbTestFixture<T, TKey>>
|
||||||
where T : TestDoc<TKey>, new()
|
where T : TestDoc<TKey>, new()
|
||||||
where TKey : IEquatable<TKey>
|
where TKey : IEquatable<TKey>
|
||||||
@@ -348,160 +348,6 @@ namespace CoreIntegrationTests.Infrastructure
|
|||||||
|
|
||||||
#endregion Read
|
#endregion Read
|
||||||
|
|
||||||
#region Update
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOne()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
document.SomeContent = content;
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T, TKey>(document);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneAsync()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
document.SomeContent = content;
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T, TKey>(document);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOneField()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T, TKey, string>(document, x => x.SomeContent, content);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneFieldAsync()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T, TKey, string>(document, x => x.SomeContent, content);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOneFieldWithFilter()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T, TKey, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneFieldWithFilterAsync()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var content = GetContent();
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T, TKey, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result, GetTestName());
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument, GetTestName());
|
|
||||||
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task UpdateOneAsyncWithUpdateDefinition()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var childrenToAdd = new List<Child>
|
|
||||||
{
|
|
||||||
new Child("testType1", "testValue1"),
|
|
||||||
new Child("testType2", "testValue2")
|
|
||||||
};
|
|
||||||
|
|
||||||
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var result = await SUT.UpdateOneAsync<T, TKey>(document, updateDef);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument);
|
|
||||||
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void UpdateOneWithUpdateDefinition()
|
|
||||||
{
|
|
||||||
// Arrange
|
|
||||||
var document = CreateTestDocument();
|
|
||||||
SUT.AddOne<T, TKey>(document);
|
|
||||||
var childrenToAdd = new List<Child>
|
|
||||||
{
|
|
||||||
new Child("testType1", "testValue1"),
|
|
||||||
new Child("testType2", "testValue2")
|
|
||||||
};
|
|
||||||
|
|
||||||
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var result = SUT.UpdateOne<T, TKey>(document, updateDef);
|
|
||||||
// Assert
|
|
||||||
Assert.True(result);
|
|
||||||
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
|
||||||
Assert.True(null != updatedDocument);
|
|
||||||
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
|
||||||
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Update
|
|
||||||
|
|
||||||
#region Delete
|
#region Delete
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -0,0 +1,377 @@
|
|||||||
|
using MongoDB.Driver;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace CoreIntegrationTests.Infrastructure
|
||||||
|
{
|
||||||
|
public abstract partial class MongoDbTKeyDocumentTestBase<T, TKey> :
|
||||||
|
IClassFixture<MongoDbTestFixture<T, TKey>>
|
||||||
|
where T : TestDoc<TKey>, new()
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
|
||||||
|
{
|
||||||
|
#region Update One
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOne()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
document.SomeContent = content;
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T, TKey>(document);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
document.SomeContent = content;
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T, TKey>(document);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOneField()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T, TKey, string>(document, x => x.SomeContent, content);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneFieldAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T, TKey, string>(document, x => x.SomeContent, content);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOneFieldWithFilter()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T, TKey, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneFieldWithFilterAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T, TKey, string>(x => x.Id.Equals(document.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument, GetTestName());
|
||||||
|
Assert.True(content == updatedDocument.SomeContent, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateOneAsyncWithUpdateDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateOneAsync<T, TKey>(document, updateDef);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument);
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateOneWithUpdateDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var document = CreateTestDocument();
|
||||||
|
SUT.AddOne<T, TKey>(document);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = MongoDB.Driver.Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateOne<T, TKey>(document, updateDef);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result);
|
||||||
|
var updatedDocument = SUT.GetById<T, TKey>(document.Id, PartitionKey);
|
||||||
|
Assert.True(null != updatedDocument);
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Update One
|
||||||
|
|
||||||
|
#region Update Many
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithLinqFilterAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T, TKey, string>(x => docIds.Contains(x.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithFilterDefinitionAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T, TKey, string>(filterDefinition, x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithLinqFilterAndUpdateDefinitionAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T, TKey>(x => docIds.Contains(x.Id), updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task UpdateManyWithFilterAndUpdateDefinitionsAsync()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = await SUT.UpdateManyAsync<T, TKey>(filterDefinition, updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithLinqFilter()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T, TKey, string>(x => docIds.Contains(x.Id), x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithFilterDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T, TKey, string>(filterDefinition, x => x.SomeContent, content, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocument = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocument.Count == 2);
|
||||||
|
Assert.True(updatedDocument.All(u => u.SomeContent == content), GetTestName());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithLinqFilterAndUpdateDefinition()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T, TKey>(x => docIds.Contains(x.Id), updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UpdateManyWithFilterAndUpdateDefinitions()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var documents = CreateTestDocuments(2);
|
||||||
|
SUT.AddMany<T, TKey>(documents);
|
||||||
|
var childrenToAdd = new List<Child>
|
||||||
|
{
|
||||||
|
new Child("testType1", "testValue1"),
|
||||||
|
new Child("testType2", "testValue2")
|
||||||
|
};
|
||||||
|
|
||||||
|
var updateDef = Builders<T>.Update.AddToSetEach(p => p.Children, childrenToAdd);
|
||||||
|
|
||||||
|
var docIds = documents.Select(u => u.Id).ToArray();
|
||||||
|
var filterDefinition = Builders<T>.Filter.Where(x => docIds.Contains(x.Id));
|
||||||
|
var content = GetContent();
|
||||||
|
// Act
|
||||||
|
var result = SUT.UpdateMany<T, TKey>(filterDefinition, updateDef, PartitionKey);
|
||||||
|
// Assert
|
||||||
|
Assert.True(result == 2, GetTestName());
|
||||||
|
var updatedDocuments = SUT.GetAll<T, TKey>(x => docIds.Contains(x.Id), PartitionKey);
|
||||||
|
|
||||||
|
Assert.True(updatedDocuments.Count == 2);
|
||||||
|
updatedDocuments.ForEach(updatedDocument =>
|
||||||
|
{
|
||||||
|
Assert.True(childrenToAdd[0].Type == updatedDocument.Children[0].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[0].Value == updatedDocument.Children[0].Value, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Type == updatedDocument.Children[1].Type, GetTestName());
|
||||||
|
Assert.True(childrenToAdd[1].Value == updatedDocument.Children[1].Value, GetTestName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion Update Many
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,10 @@
|
|||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
<runtime>
|
<runtime>
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
|
||||||
|
</dependentAssembly>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -35,41 +35,43 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Crc32C.NET, Version=1.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Crc32C.NET, Version=1.0.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\Crc32C.NET.dll</HintPath>
|
<HintPath>..\packages\Crc32C.NET.1.0.5.0\lib\net20\Crc32C.NET.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DnsClient, Version=1.2.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
|
<Reference Include="DnsClient, Version=1.2.0.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\DnsClient.dll</HintPath>
|
<HintPath>..\packages\DnsClient.1.2.0\lib\net45\DnsClient.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Bson, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Bson, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\MongoDB.Bson.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Bson.2.9.3\lib\net452\MongoDB.Bson.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\MongoDB.Driver.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Driver.2.9.3\lib\net452\MongoDB.Driver.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDB.Driver.Core, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDB.Driver.Core, Version=2.9.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\MongoDB.Driver.Core.dll</HintPath>
|
<HintPath>..\packages\MongoDB.Driver.Core.2.9.3\lib\net452\MongoDB.Driver.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="MongoDbGenericRepository, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="MongoDbGenericRepository, Version=1.4.4.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\MongoDbGenericRepository.dll</HintPath>
|
<HintPath>..\packages\MongoDbGenericRepository.1.4.4\lib\net452\MongoDbGenericRepository.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
<Reference Include="nunit.framework, Version=3.12.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NUnit.3.12.0\lib\net45\nunit.framework.dll</HintPath>
|
<HintPath>..\packages\NUnit.3.12.0\lib\net45\nunit.framework.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SharpCompress, Version=0.23.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
|
<Reference Include="SharpCompress, Version=0.23.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\SharpCompress.dll</HintPath>
|
<HintPath>..\packages\SharpCompress.0.23.0\lib\net45\SharpCompress.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Snappy.NET, Version=1.1.1.8, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Snappy.NET, Version=1.1.1.8, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\Snappy.NET.dll</HintPath>
|
<HintPath>..\packages\Snappy.NET.1.1.1.8\lib\net45\Snappy.NET.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
<Reference Include="System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\System.Buffers.dll</HintPath>
|
<HintPath>..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\MongoDbGenericRepository.1.4.1\lib\net452\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -104,7 +106,6 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\NUnit.3.12.0\build\NUnit.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit.3.12.0\build\NUnit.props'))" />
|
|
||||||
<Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
|
<Error Condition="!Exists('..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NUnit3TestAdapter.3.15.1\build\net35\NUnit3TestAdapter.props'))" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -5,13 +5,12 @@
|
|||||||
<package id="MongoDB.Bson" version="2.9.3" targetFramework="net461" />
|
<package id="MongoDB.Bson" version="2.9.3" targetFramework="net461" />
|
||||||
<package id="MongoDB.Driver" version="2.9.3" targetFramework="net461" />
|
<package id="MongoDB.Driver" version="2.9.3" targetFramework="net461" />
|
||||||
<package id="MongoDB.Driver.Core" version="2.9.3" targetFramework="net461" />
|
<package id="MongoDB.Driver.Core" version="2.9.3" targetFramework="net461" />
|
||||||
<package id="MongoDbGenericRepository" version="1.4.1" targetFramework="net461" />
|
<package id="MongoDbGenericRepository" version="1.4.4" targetFramework="net461" />
|
||||||
<package id="NUnit" version="3.12.0" targetFramework="net461" />
|
<package id="NUnit" version="3.12.0" targetFramework="net461" />
|
||||||
<package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net461" />
|
<package id="NUnit.ConsoleRunner" version="3.10.0" targetFramework="net461" />
|
||||||
<package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net461" />
|
<package id="NUnit3TestAdapter" version="3.15.1" targetFramework="net461" />
|
||||||
<package id="SharpCompress" version="0.23.0" targetFramework="net461" />
|
<package id="SharpCompress" version="0.23.0" targetFramework="net461" />
|
||||||
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net461" />
|
<package id="Snappy.NET" version="1.1.1.8" targetFramework="net461" />
|
||||||
<package id="System.Buffers" version="4.4.0" targetFramework="net461" />
|
<package id="System.Buffers" version="4.4.0" targetFramework="net461" />
|
||||||
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
|
|
||||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<SolutionConfiguration>
|
|
||||||
<Settings>
|
|
||||||
<CurrentEngineMode>Run all tests automatically [Global]</CurrentEngineMode>
|
|
||||||
</Settings>
|
|
||||||
</SolutionConfiguration>
|
|
||||||
@@ -131,5 +131,109 @@ namespace MongoDbGenericRepository
|
|||||||
bool UpdateOne<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
bool UpdateOne<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
where TDocument : IDocument<TKey>
|
where TDocument : IDocument<TKey>
|
||||||
where TKey : IEquatable<TKey>;
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument, TKey, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument, TKey>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument, TKey>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
long UpdateMany<TDocument, TKey, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
long UpdateMany<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
long UpdateMany<TDocument, TKey>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
long UpdateMany<TDocument, TKey>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,119 @@ namespace MongoDbGenericRepository
|
|||||||
return await MongoDbUpdater.UpdateOneAsync<TDocument, Guid, TField>(filter, field, value, partitionKey);
|
return await MongoDbUpdater.UpdateOneAsync<TDocument, Guid, TField>(filter, field, value, partitionKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, Guid, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, Guid, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, Guid>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public async Task<long> UpdateManyAsync<TDocument>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, Guid>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, Guid, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, Guid, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, Guid>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public long UpdateMany<TDocument>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<Guid>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, Guid>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Update
|
#endregion Update
|
||||||
|
|
||||||
#region Update TKey
|
#region Update TKey
|
||||||
@@ -326,6 +439,133 @@ namespace MongoDbGenericRepository
|
|||||||
return await MongoDbUpdater.UpdateOneAsync<TDocument, TKey, TField>(Builders<TDocument>.Filter.Where(filter), field, value, partitionKey);
|
return await MongoDbUpdater.UpdateOneAsync<TDocument, TKey, TField>(Builders<TDocument>.Filter.Where(filter), field, value, partitionKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Update
|
#endregion Update
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,5 +183,129 @@ namespace MongoDbGenericRepository.DataAccess.Update
|
|||||||
{
|
{
|
||||||
return UpdateOne<TDocument, TKey, TField>(Builders<TDocument>.Filter.Where(filter), field, value, partitionKey);
|
return UpdateOne<TDocument, TKey, TField>(Builders<TDocument>.Filter.Where(filter), field, value, partitionKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return await UpdateManyAsync<TDocument, TKey, TField>(Builders<TDocument>.Filter.Where(filter), field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
var collection = string.IsNullOrEmpty(partitionKey) ? GetCollection<TDocument, TKey>() : GetCollection<TDocument, TKey>(partitionKey);
|
||||||
|
var updateRes = await collection.UpdateManyAsync(filter, Builders<TDocument>.Update.Set(field, value));
|
||||||
|
return updateRes.ModifiedCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, apply the update definition.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> update, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return await UpdateManyAsync<TDocument, TKey>(Builders<TDocument>.Filter.Where(filter), update, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, apply the update definition.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TKey>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
var collection = string.IsNullOrEmpty(partitionKey) ? GetCollection<TDocument, TKey>() : GetCollection<TDocument, TKey>(partitionKey);
|
||||||
|
var updateRes = await collection.UpdateManyAsync(filter, updateDefinition, new UpdateOptions { IsUpsert = true });
|
||||||
|
return updateRes.ModifiedCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
return UpdateMany<TDocument, TKey, TField>(Builders<TDocument>.Filter.Where(filter), field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
var collection = string.IsNullOrEmpty(partitionKey) ? GetCollection<TDocument, TKey>() : GetCollection<TDocument, TKey>(partitionKey);
|
||||||
|
var updateRes = collection.UpdateMany(filter, Builders<TDocument>.Update.Set(field, value));
|
||||||
|
return updateRes.ModifiedCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, apply the update definition.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="UpdateDefinition">The update definition.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TKey>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> UpdateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
where TKey : IEquatable<TKey>
|
||||||
|
{
|
||||||
|
var collection = string.IsNullOrEmpty(partitionKey) ? GetCollection<TDocument, TKey>() : GetCollection<TDocument, TKey>(partitionKey);
|
||||||
|
var updateRes = collection.UpdateMany(filter, UpdateDefinition, new UpdateOptions { IsUpsert = true });
|
||||||
|
return updateRes.ModifiedCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,6 +110,94 @@ namespace MongoDbGenericRepository
|
|||||||
/// <param name="partitionKey">The partition key for the document.</param>
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
Task<bool> UpdateOneAsync<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
Task<bool> UpdateOneAsync<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
where TDocument : IDocument<TKey>;
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
Task<long> UpdateManyAsync<TDocument>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
long UpdateMany<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
long UpdateMany<TDocument, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
long UpdateMany<TDocument>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
long UpdateMany<TDocument>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract partial class BaseMongoRepository<TKey> : IBaseMongoRepository_Update<TKey>
|
public abstract partial class BaseMongoRepository<TKey> : IBaseMongoRepository_Update<TKey>
|
||||||
@@ -266,5 +354,116 @@ namespace MongoDbGenericRepository
|
|||||||
{
|
{
|
||||||
return await MongoDbUpdater.UpdateOneAsync<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
return await MongoDbUpdater.UpdateOneAsync<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual async Task<long> UpdateManyAsync<TDocument>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return await MongoDbUpdater.UpdateManyAsync<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The partition key for the document.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TField>(Expression<Func<TDocument, bool>> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="field">The field selector.</param>
|
||||||
|
/// <param name="value">The new value of the property field.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument, TField>(FilterDefinition<TDocument> filter, Expression<Func<TDocument, TField>> field, TField value, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey, TField>(filter, field, value, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument>(FilterDefinition<TDocument> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null)
|
||||||
|
where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
/// <param name="filter">The document filter.</param>
|
||||||
|
/// <param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
/// <param name="partitionKey">The value of the partition key.</param>
|
||||||
|
public virtual long UpdateMany<TDocument>(Expression<Func<TDocument, bool>> filter, UpdateDefinition<TDocument> updateDefinition, string partitionKey = null) where TDocument : IDocument<TKey>
|
||||||
|
{
|
||||||
|
return MongoDbUpdater.UpdateMany<TDocument, TKey>(filter, updateDefinition, partitionKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using MongoDB.Bson.Serialization.Attributes;
|
using System;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace MongoDbGenericRepository.Models
|
namespace MongoDbGenericRepository.Models
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,13 +3,20 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net452;netstandard2.0;netstandard1.5;</TargetFrameworks>
|
<TargetFrameworks>net452;netstandard2.0;netstandard1.5;</TargetFrameworks>
|
||||||
<PackageId>MongoDbGenericRepository</PackageId>
|
<PackageId>MongoDbGenericRepository</PackageId>
|
||||||
<PackageVersion>1.2.0</PackageVersion>
|
<PackageVersion>1.4.4</PackageVersion>
|
||||||
<Authors>Alexandre Spieser</Authors>
|
<Authors>Alexandre Spieser</Authors>
|
||||||
|
<PackageTitle>MongoDb Generic Repository</PackageTitle>
|
||||||
<Description>A generic repository implementation using the MongoDB C# Sharp 2.0 driver.</Description>
|
<Description>A generic repository implementation using the MongoDB C# Sharp 2.0 driver.</Description>
|
||||||
|
<PackageLicenseUrl>http://www.opensource.org/licenses/mit-license.php</PackageLicenseUrl>
|
||||||
|
<PackageProjectUrl>http://www.opensource.org/licenses/mit-license.php</PackageProjectUrl>
|
||||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||||
<PackageReleaseNotes>.NET Core supported.</PackageReleaseNotes>
|
<PackageReleaseNotes>Release notes are at https://github.com/alexandre-spieser/mongodb-generic-repository/releases </PackageReleaseNotes>
|
||||||
<Copyright>Copyright 2017 (c) Alexandre Spieser. All rights reserved.</Copyright>
|
<Copyright>Copyright 2020 (c) Alexandre Spieser. All rights reserved.</Copyright>
|
||||||
<PackageTags>MongoDb Repository NoSql Generic</PackageTags>
|
<PackageTags>MongoDb Repository Generic NoSql</PackageTags>
|
||||||
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||||
|
<Version>1.4.4</Version>
|
||||||
|
<RepositoryUrl>https://github.com/alexandre-spieser/mongodb-generic-repository</RepositoryUrl>
|
||||||
|
<RepositoryType>Git</RepositoryType>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net45|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net45|AnyCPU'">
|
||||||
@@ -20,6 +27,10 @@
|
|||||||
<DocumentationFile></DocumentationFile>
|
<DocumentationFile></DocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net452|AnyCPU'">
|
||||||
|
<DocumentationFile>D:\development\mongodb-generic-repository\MongoDbGenericRepository\MongoDbGenericRepository.xml</DocumentationFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MongoDB.Driver" Version="2.9.3" />
|
<PackageReference Include="MongoDB.Driver" Version="2.9.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<package >
|
<package >
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>MongoDbGenericRepository</id>
|
<id>MongoDbGenericRepository</id>
|
||||||
<version>1.4.1</version>
|
<version>1.4.4</version>
|
||||||
<title>MongoDb Generic Repository</title>
|
<title>MongoDb Generic Repository</title>
|
||||||
<authors>Alexandre Spieser</authors>
|
<authors>Alexandre Spieser</authors>
|
||||||
<owners>Alexandre Spieser</owners>
|
<owners>Alexandre Spieser</owners>
|
||||||
@@ -11,10 +11,18 @@
|
|||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
<description>A generic repository implementation using the MongoDB C# Sharp 2.0 driver.</description>
|
<description>A generic repository implementation using the MongoDB C# Sharp 2.0 driver.</description>
|
||||||
<releaseNotes>Release notes are at https://github.com/alexandre-spieser/mongodb-generic-repository/releases</releaseNotes>
|
<releaseNotes>Release notes are at https://github.com/alexandre-spieser/mongodb-generic-repository/releases</releaseNotes>
|
||||||
<copyright>Copyright 2019 (c) Alexandre Spieser. All rights reserved.</copyright>
|
<copyright>Copyright 2020 (c) Alexandre Spieser. All rights reserved.</copyright>
|
||||||
<tags>MongoDb Repository Generic NoSql</tags>
|
<tags>MongoDb Repository Generic NoSql</tags>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency id="MongoDB.Driver" version="2.9.3" />
|
<group targetFramework=".NETFramework4.5.2">
|
||||||
|
<dependency id="MongoDB.Driver" version="2.9.3" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework=".NETStandard1.5">
|
||||||
|
<dependency id="MongoDB.Driver" version="2.9.3" exclude="Build,Analyzers" />
|
||||||
|
</group>
|
||||||
|
<group targetFramework=".NETStandard2.0">
|
||||||
|
<dependency id="MongoDB.Driver" version="2.9.3" exclude="Build,Analyzers"/>
|
||||||
|
</group>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</metadata>
|
</metadata>
|
||||||
<files>
|
<files>
|
||||||
|
|||||||
@@ -155,6 +155,94 @@
|
|||||||
<param name="value">The new value of the property field.</param>
|
<param name="value">The new value of the property field.</param>
|
||||||
<param name="partitionKey">The value of the partition key.</param>
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateManyAsync``3(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateManyAsync``3(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateManyAsync``2(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateManyAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateMany``3(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateMany``3(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateMany``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update.UpdateMany``2(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
<member name="M:MongoDbGenericRepository.DataAccess.Update.IBaseMongoRepository_Update_ClientSession.UpdateOne``3(MongoDB.Driver.IClientSessionHandle,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String,System.Threading.CancellationToken)">
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.IBaseMongoRepository_Update_ClientSession.UpdateOne``3(MongoDB.Driver.IClientSessionHandle,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String,System.Threading.CancellationToken)">
|
||||||
<summary>
|
<summary>
|
||||||
Updates a document.
|
Updates a document.
|
||||||
@@ -527,6 +615,87 @@
|
|||||||
<param name="value">The new value of the property field.</param>
|
<param name="value">The new value of the property field.</param>
|
||||||
<param name="partitionKey">The partition key for the document.</param>
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateManyAsync``3(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateManyAsync``3(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateManyAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, apply the update definition.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateManyAsync``2(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, apply the update definition.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateMany``3(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateMany``3(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.DataAccess.Update.MongoDbUpdater.UpdateMany``2(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, apply the update definition.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="UpdateDefinition">The update definition.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
<member name="M:MongoDbGenericRepository.DataAccess.Base.DataAccessBase.HandlePartitioned``2(``0)">
|
<member name="M:MongoDbGenericRepository.DataAccess.Base.DataAccessBase.HandlePartitioned``2(``0)">
|
||||||
<summary>
|
<summary>
|
||||||
Gets a collections for a potentially partitioned document type.
|
Gets a collections for a potentially partitioned document type.
|
||||||
@@ -2506,6 +2675,87 @@
|
|||||||
<param name="value">The new value of the property field.</param>
|
<param name="value">The new value of the property field.</param>
|
||||||
<param name="partitionKey">The partition key for the document.</param>
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``2(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``1(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``2(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``1(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateOneAsync``2(``0)">
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateOneAsync``2(``0)">
|
||||||
<summary>
|
<summary>
|
||||||
Asynchronously Updates a document.
|
Asynchronously Updates a document.
|
||||||
@@ -2610,6 +2860,94 @@
|
|||||||
<param name="value">The new value of the property field.</param>
|
<param name="value">The new value of the property field.</param>
|
||||||
<param name="partitionKey">The partition key for the document.</param>
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``3(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``3(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``2(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateManyAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``3(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``3(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``2}},``2,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository.UpdateMany``2(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TKey">The type of the primary key for a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Delete.DeleteOne``2(``0)">
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Delete.DeleteOne``2(``0)">
|
||||||
<summary>
|
<summary>
|
||||||
Deletes a document.
|
Deletes a document.
|
||||||
@@ -3142,6 +3480,86 @@
|
|||||||
<param name="value">The new value of the property field.</param>
|
<param name="value">The new value of the property field.</param>
|
||||||
<param name="partitionKey">The partition key for the document.</param>
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateManyAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateManyAsync``2(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateManyAsync``1(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateManyAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateMany``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateMany``2(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateMany``1(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.BaseMongoRepository`1.UpdateMany``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
<member name="T:MongoDbGenericRepository.IBaseMongoRepository_Delete`1">
|
<member name="T:MongoDbGenericRepository.IBaseMongoRepository_Delete`1">
|
||||||
<summary>
|
<summary>
|
||||||
The interface exposing deletion functionality for Key typed repositories.
|
The interface exposing deletion functionality for Key typed repositories.
|
||||||
@@ -3733,6 +4151,86 @@
|
|||||||
<param name="value">The new value of the property field.</param>
|
<param name="value">The new value of the property field.</param>
|
||||||
<param name="partitionKey">The partition key for the document.</param>
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateManyAsync``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateManyAsync``2(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateManyAsync``1(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateManyAsync``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateMany``2(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The partition key for the document.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateMany``2(MongoDB.Driver.FilterDefinition{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}},``1,System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, updates the property field with the given value.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<typeparam name="TField">The type of the field.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="field">The field selector.</param>
|
||||||
|
<param name="value">The new value of the property field.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateMany``1(MongoDB.Driver.FilterDefinition{``0},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
|
<member name="M:MongoDbGenericRepository.IBaseMongoRepository_Update`1.UpdateMany``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}},MongoDB.Driver.UpdateDefinition{``0},System.String)">
|
||||||
|
<summary>
|
||||||
|
For the entities selected by the filter, applies the update you have defined in MongoDb.
|
||||||
|
</summary>
|
||||||
|
<typeparam name="TDocument">The type representing a Document.</typeparam>
|
||||||
|
<param name="filter">The document filter.</param>
|
||||||
|
<param name="updateDefinition">The update definition to apply.</param>
|
||||||
|
<param name="partitionKey">The value of the partition key.</param>
|
||||||
|
</member>
|
||||||
<member name="T:MongoDbGenericRepository.Models.Document">
|
<member name="T:MongoDbGenericRepository.Models.Document">
|
||||||
<summary>
|
<summary>
|
||||||
This class represents a basic document that can be stored in MongoDb.
|
This class represents a basic document that can be stored in MongoDb.
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
|||||||
# MongoDbGenericRepository
|
# MongoDbGenericRepository
|
||||||
|
|
||||||
An example of generic repository implementation using the MongoDB C# Sharp 2.0 driver (async)
|
An example of generic repository implementation using the MongoDB C# Sharp 2.0 driver (async)
|
||||||
|
|
||||||
Now available as a nuget package:
|
Now available as a nuget package:
|
||||||
@@ -8,6 +9,18 @@ Covered by 400+ integration tests and counting.
|
|||||||
|
|
||||||
The MongoDbGenericRepository is also used in [AspNetCore.Identity.MongoDbCore](https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore).
|
The MongoDbGenericRepository is also used in [AspNetCore.Identity.MongoDbCore](https://github.com/alexandre-spieser/AspNetCore.Identity.MongoDbCore).
|
||||||
|
|
||||||
|
# Support This Project
|
||||||
|
|
||||||
|
If you have found this project helpful, either as a library that you use or as a learning tool, please consider buying the team a coffee: <a href="https://www.buymeacoffee.com/zeitquest" target="_blank"><img height="40px" src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" style="max-height: 51px;width: 150px !important;" ></a>
|
||||||
|
|
||||||
|
# Worth Knowing
|
||||||
|
|
||||||
|
This package sets the `MongoDefaults.GuidRepresentation` to `MongoDB.Bson.GuidRepresentation.Standard` by default, instead of the default driver setting of `MongoDB.Bson.GuidRepresentation.CSharpLegacy`. This can cause issues if you have been using the driver on an existing application previously or if you are using CosmosDB.
|
||||||
|
|
||||||
|
You can override this behaviour to enforce legacy behaviour in your app Startup routine like so :
|
||||||
|
|
||||||
|
`MongoDbContext.SetGuidRepresentation(MongoDB.Bson.GuidRepresentation.CSharpLegacy)`. More info [here](https://github.com/alexandre-spieser/mongodb-generic-repository/issues/7).
|
||||||
|
|
||||||
# Usage examples
|
# Usage examples
|
||||||
|
|
||||||
This repository is meant to be inherited from.
|
This repository is meant to be inherited from.
|
||||||
|
|||||||
Reference in New Issue
Block a user