Например, я хочу создать индексы для коллекции. Где я это должен делать, в 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
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости