В моих конкретных классах репозитория, например, CollectionRepository, я наследую базовый базовый класс (BaseRepository) и в конструкторе использую базовый UnitOfWork, который должен быть введен. Однако я не могу получить доступ ни к одному из унаследованных методов BaseRepository.
Полностью из идей, любая помощь будет оценена.
Вот код, иллюстрирующий мою проблему:
Мой контроллер, в который вводится хранилище.
public readonly ICollectionRepository _collectionRepository;
public HomeController(ICollectionRepository collectionRepository, IRepository<Collection> repository)
{
_collectionRepository = collectionRepository;
}
public ActionResult Index()
{
_collectionRepository. //Here i only get the ICollectionRepositoryMethods
return View(new List<Note>());
}
Мой базовый репозиторий:
public class BaseRepository<T> : IRepository<T> where T : IAggregateRoot
{
public readonly IUnitOfWork _unitOfWork;
public BaseRepository(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
public BaseRepository()
{}
public void Save(T Entity)
{
_unitOfWork.Session.Save(Entity);
}
}
И вот определенный класс хранилища, который наследует базу.
public class CollectionRepository : BaseRepository<Collection>, ICollectionRepository
{
public CollectionRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
public IList<Collection> GetTodaysCollections()
{
throw new System.NotImplementedException();
}
}
Я настраиваю CollectionRepository следующим образом с Structuremap, но не уверен, что это правильно:
For<ICollectionRepository>().Use<CollectionRepository>();