Репозиторий Общий репозиторий с единицей работы для ядра C# .net с MongoDBC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Репозиторий Общий репозиторий с единицей работы для ядра C# .net с MongoDB

Сообщение Anonymous »


Я новичок в ядре .NET и проектирую многоуровневую архитектуру основного приложения Asp.net. Мы используем общий репозиторий с шаблоном репозитория Unit of Work. Завершен общий метод репозитория, нужно иметь некоторое представление о единице работы с коллекцией.

Общий репозиторий

общедоступный интерфейс IMongoRepository где TDocument: IAudiableEntity { void InsertOne (документ TDocument); Task InsertOneAsync (документ TDocument); void InsertMany (документы ICollection); Задача InsertManyAsync (документы ICollection); void replaceOne (документ TDocument); Задача replaceOneAsync (документ TDocument); void DeleteOne(Expression filterExpression); Задача DeleteOneAsync(Expression filterExpression); void DeleteById (идентификатор строки); Задача DeleteByIdAsync (идентификатор строки); void DeleteMany(Expression filterExpression); Задача DeleteManyAsync(Expression filterExpression); } общедоступный класс MongoRepository: IMongoRepository где TDocument: IAudiableEntity { частный только для чтения IMongoCollection _collection; общедоступный MongoRepository (настройки IMongoDbSettings) { база данных var = новый MongoClient(settings.ConnectionString).GetDatabase(settings.DatabaseName); _collection = data.GetCollection(GetCollectionName(typeof(TDocument))); } частная защищенная строка GetCollectionName (тип documentType) { return ((BsonCollectionAttribute)documentType.GetCustomAttributes( тип(BsonCollectionAttribute), истинный) .FirstOrDefault())?.CollectionName; } публичная виртуальная пустота InsertOne (документ TDocument) { _collection.InsertOne(документ); } общедоступная виртуальная асинхронная задача InsertOneAsync (документ TDocument) { ждут _collection.InsertOneAsync(документ); возвратный документ; } public void InsertMany (документы ICollection) { _collection.InsertMany(документы); } общедоступная виртуальная асинхронная задача InsertManyAsync (документы ICollection) { ждут _collection.InsertManyAsync(документы); } общественная недействительность replaceOne (документ TDocument) { var filter = Builders.Filter.Eq(doc => doc.Id, document.Id); if (документ представляет собой слайд Слайдов) { слайд.IsDirty = правда; } _collection.FindOneAndReplace(фильтр, документ); } public void replaceWODirtyOne (документ TDocument) { var filter = Builders.Filter.Eq(doc => doc.Id, document.Id); _collection.FindOneAndReplace(фильтр, документ); } общедоступная виртуальная асинхронная задача replaceOneAsync (документ TDocument) { var filter = Builders.Filter.Eq(doc => doc.Id, document.Id); if (документ представляет собой слайд Слайдов) { слайд.IsDirty = правда; } ждут _collection.FindOneAndReplaceAsync(фильтр, документ); } общедоступная виртуальная асинхронная задача replaceWODirtyOneAsync (документ TDocument) { var filter = Builders.Filter.Eq(doc => doc.Id, document.Id); ждут _collection.FindOneAndReplaceAsync(фильтр, документ); } public void DeleteOne(Expression filterExpression) { _collection.FindOneAndDelete(filterExpression); } общедоступная задача DeleteOneAsync (Expression filterExpression) { return Task.Run(() => _collection.FindOneAndDeleteAsync(filterExpression)); } общественная пустота DeleteById (идентификатор строки) { вар objectId = новый ObjectId (id); var filter = Builders.Filter.Eq(doc => doc.Id, objectId); _collection.FindOneAndDelete(фильтр); } общедоступная задача DeleteByIdAsync (идентификатор строки) { вернуть Task.Run(() => { вар objectId = новый ObjectId (id); var filter = Builders.Filter.Eq(doc => doc.Id, objectId); _collection.FindOneAndDeleteAsync(фильтр); }); } public void DeleteMany(Expression filterExpression) { _collection.DeleteMany(filterExpression); } общедоступная задача DeleteManyAsync (Expression filterExpression) { вернуть Task.Run(() => _collection.DeleteManyAsync(filterExpression)); } } Как можно выполнить работу здесь, дайте мне знать о возможностях.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу использовать petapoco с шаблоном синхронного и асинхронного репозитория + единицей работы?
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Регулярное выражение – какой шаблон для цифры с плавающей запятой рядом с единицей измерения
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Невозможно прокрутить в Scroll Rect с единицей входных полей Unity
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Общий рисунок репозитория для ядра .NET с DAPPER
    Anonymous » » в форуме C#
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Клонирование в репозиторий ядра
    Anonymous » » в форуме Linux
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»