Где нужно инициализировать MongoDB?

80
23 октября 2021, 06:20

Например, я хочу создать индексы для коллекции. Где я это должен делать, в DbContext? Он будет часто инициализироваться и каждый раз создавать индексы, да ещё и не асинхронно - такое себе.

public class AuditDbContext : IAuditDbContext
{
    #region Fields
    private readonly IMongoDatabase _database;
    #endregion
    #region Entities
    public IMongoCollection<AuditEntry> AuditEntries => _database.GetCollection<AuditEntry>("AuditEntries");
    #endregion
    #region Ctor
    public AuditDbContext(DatabaseItem settings)
    {
        var client = new MongoClient(settings.ConnectionString);
        _database = client.GetDatabase("audit");
        InitializeDatabase();
    }
    #endregion
    #region Methods
    private void InitializeDatabase()
    {
        var auditEntryBuilder = Builders<AuditEntry>.IndexKeys;
        AuditEntries.Indexes.CreateOne(new CreateIndexModel<AuditEntry>(auditEntryBuilder.Ascending(x => x.EntityTypeName)));
        AuditEntries.Indexes.CreateOne(new CreateIndexModel<AuditEntry>(auditEntryBuilder.Ascending("Properties.PropertyName")));
    }
    #endregion
}
READ ALSO
Как сделать полноэкранный режим чтобы отображался taskbar

Как сделать полноэкранный режим чтобы отображался taskbar

Я знаю как сделать полноэкранный режим,но прячет taskbar,как это пофиксить

177
Экранирование обратного слеша в строке JS

Экранирование обратного слеша в строке JS

Как можно разом экранировать все обратные слеши в строке?

121
Как вернуть большую структуру будет дешевле?

Как вернуть большую структуру будет дешевле?

Допустим, некий код извлекает из указателя структуруСтруктура имеет размер больше чем указатель/ссылка, будет ли дешевле обернуть эту структуру...

158