IfExist в общем хранилище
Я использую общий репозиторий и unitofwork(ядро.net) и пытаюсь создать функцию IfExist,
1: интерфейс
bool IsExistRecord<type>(type Id);
2- Реализация
public bool IsExistRecord<type>(type Id)
{
var query = DbSet.Find(Id);
if (query != null)
{
return true;
}
return false;
}
3- Используя это.
_unitOfWork.GetRepository<EntityName>().IsExistRecord(id);
Но в этом случае я пытаюсь проверить только первичный ключ таблицы,
как насчет проверки любого столбца в таблице как код,FirstName?! любая помощь
1 ответ
Вам просто нужен такой метод расширения для вашего хранилища (или вы можете преобразовать его и добавить прямо в хранилище)
/// <summary>
/// Gets a value indicating whether or not the record exists by query
/// </summary>
/// <param name="repository">Repository Instance</param>
/// <param name="predicate">Query Predicate</param>
/// <returns>True if the object exists</returns>
public static bool DoesExist<TEntity>(this IRepository<TEntity> repository, Expression<Func<TEntity, bool>> predicate) where TEntity : class
{
return repository.Get(p => p.Where(predicate)).FirstOrDefault() != null;
}
Тогда назовите это так:
_unitOfWork.GetRepository<EntityName>().DoesExist(p => p.FirstName == "Robert");