Отслеживание изменений в entity framework
Привет,
У меня есть проблема с трекером изменений в работе EntityFrame.
Как я могу получить имя базы данных из трекера изменений?
Я реализовал свой код, но он возвращает только имя модели, а не физическое имя БД.
Спасибо.
Что я уже пробовал:
Получить физическое имя БД с помощью change tracker в entityframework
Sandeep Mewara
Не совсем понятно, что вы ищете, не так ли:
foreach (var entityType in dbContext.Model.GetEntityTypes()) { var tableName = entityType.GetTableName(); foreach (var propertyType in entityType.GetProperties()) { var columnName = propertyType.GetColumnName(); } }
Moses_k
Я использую Asp.net MVC5 и мой DbContext, который не имеет модели.
Я просто хочу показать физическое имя таблицы текущей модели.
Sandeep Mewara
Что значит, у вас нет DBContext? Прочтите это: https://docs.microsoft.com/en-us/ef/ef6/fundamentals/working-with-dbcontext
Moses_k
Привет,
Нет, у меня есть Dbcontext для Identity MVC5.
RoleBaseDbContext db = новый RoleBaseDbContext();
var s=ContextExtensions.GetTableName<string>(db);
foreach (var ent в этом.Программы changetracker.Входы().Где(p => p.State == EntityState.Добавлено || p.State == EntityState.Удаленные || стр. Государство == EntityState.Модифицированный))
{
// Для каждой измененной записи получите записи записей аудита и добавьте их
по каждому элементу (All_Log х в GetAuditRecordsForChange(ЛОР, идентификатор пользователя))
{
этот.All_Log.Добавить(х);
}
}
Moses_k
но я думаю, что это не существует dbContext.Model.GetEntityTypes().
ибо asp.net mvc5 он существует в asp .net core.