Я использую первую разработку базы данных и использую Scaffold-DbContext для создания моего проекта моделей сущностей.В этом проекте у меня есть частичный dbContext, где я переопределяю методы, такие как SaveChangesAsync, чтобы установить определенные свойства, такие как «LastModifiedBy».
Я ищу, чтобы мягко удалять записи, используя столбцы dateDeleted / userDeleted.Когда я иду, чтобы переопределить подпрограмму OnModelCreating, я вижу, что она уже определена в автоматически сгенерированном частичном контексте.
Я пытаюсь сделать что-то вроде следующего:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<SomeEntity>().HasQueryFilter(x => x.DateDeleted == null);
}
Делаету кого-нибудь есть какие-либо предложения относительно того, как я могу сделать это частичным классным способом, который все еще позволяет мне восстанавливать исходный контекст на лету, используя Scaffold-DbContext?
Также обратите внимание, что я использую .NET Core 2.1.5
ОТВЕТ ОТ Дэвида Брауна - Microsoft
Добавьте статическое свойство в частичный контекст
public static bool GlobalFiltersAdded { get; set; } = false;
Затем добавьте подпрограмму для добавления вашегофильтры:
private void AddGlobalFilters(ModelBuilder modelBuilder){
SomeContext.GlobalFiltersAdded = true;
}
Затем в вашем сгенерированном контексте добавьте следующее:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
AddGlobalFilters(modelBuilder);
//OTHER LOGIC WILL BE HERE
}