Функция getById принимает один или несколько ключей в шаблоне хранилища - PullRequest
2 голосов
/ 12 мая 2019

Таким образом, я использую шаблон репозитория с ядром asp.net и структурой сущностей 6 для доступа к базе данных с уровня сервиса.Проблема в том, что у меня есть объект, который имеет составной ключ, а общий репозиторий принимает в качестве параметра int, поэтому я не могу передать несколько переменных для поиска ().

Я попытался изменить int на объект и отправить объектс 2 идентификаторами, когда мне нужно, но это не похоже на работу.

public interface IRepository<T> where T : class 
{
    IEnumerable<T> GetAll();
    T GetById( int id);
    void Update(T entity);
    void Create(T entity);
    void Delete(T entity);
}

1 Ответ

1 голос
/ 12 мая 2019

вы можете сделать это же сигнатура метода поиска

public virtual TEntity Find(params object[] keyValues);

, которые принимают значения ключа как params типа object

так будет

T GetById(params object[] keyValues);

, поэтому в этом случае он будет принимать любое количество первичных ключей любого типа

, например

new customerRepo().GetById(123)
new customerRepo().GetById(123,1)

и т. Д.

...