Я использую Entity Framework 6.0 с первым кодом и внедрил решение мягкого удаления на основе https://putshello.wordpress.com/2014/08/20/entity-framework-soft-deletes-are-easy/.. Это хорошо работает и автоматически игнорирует записи, где IsDeleted
равно true
. Итак, у моего конструктора моделей есть запись, подобная следующей:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.Map(m => m.Requires("IsDeleted").HasValue(false))
.Ignore(m => m.IsDeleted);
}
Теперь у меня есть требование для доступа к удаленным записям, но только в одном разделе приложения. Поэтому мне нужно выбрать записи, где IsDeleted
верно.
Если я попытаюсь просто использовать:
where company.IsDeleted = true
Сбой со следующим сообщением:
Указанный элемент типа 'IsDeleted' не поддерживается в LINQ to Entities. Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей.
Я посмотрел повсюду, и есть много информации о Entity Framework Core 2.0, но ничего об EF6.1. Кроме использования сценариев SQL со старым SqlClient, есть ли у кого-нибудь подсказки, как получить доступ к этим записям с помощью linq для сущностей?