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");
Другие вопросы по тегам