В конце концов я нашел ответ для себя, сравнив все классы / интерфейсы в отображении.
Ответ состоял в том, что аргумент универсального типа BasicRepository
имел следующие ограничения:
public class BasicRepository<TEntity> : IBasicRepository<TEntity>
where TEntity : class
{
... но интерфейс, который он реализовал, не имел такого же ограничения:
public interface IBasicRepository<T>
{
Я обновил интерфейс для соответствия:
public interface IBasicRepository<T>
where T : class
{
и теперь все отлично работает.
Надеюсь, это кому-нибудь поможет. :)