2017-02-10 3 views
0
public interface IRepository<TEntity, in TID> where TEntity : IAggregateRoot 
{ 
    TEntity Find(TID id); 
} 

Его implimentation приводится нижеКак передать объект и идентификатор в общем репозитории?

public class Repository<TEntity, TID> : IRepository<TEntity, TID> where TEntity : class, IAggregateRoot 
{ 
    public virtual TEntity Find(TID id) 
    { 
     return _unitOfWork.Session.Get<TEntity>(id); 
    } 
} 

Как пройти TID в выше хранилище?

ответ

0

Это общий тип. Вы должны определить его, когда экземпляр репозитория. Для образца для объекта, называемого Product, где Id - int.

var productRepository = new Repository<Product, int>(); 

// to call a method, you have to pass the TID defined, which is an int 
// and it will return a TEntity, that is a Product. 
Product product = productRepository.Find(1);