我有这个界面
public interface IReadRepository<out TEntity>
{
TEntity Single(
Expression<Func<TEntity, bool>> predicate = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
bool disableTracking = true,
params Expression<Func<TEntity, object>>[] includeProperties);
IEnumerable<TEntity> GetAll(
Expression<Func<TEntity, bool>> predicate = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
bool disableTracking = true,
params Expression<Func<TEntity, object>>[] includeProperties);
}
我收到一条错误消息:
无效方差:类型参数“ TEntity”必须在IReadRepository.Single(...)上始终有效。 “ TEntity”是协变的。无效的方差:在变数位置使用协变类型参数'TEntity'。参数必须是输入安全的。
所以我的问题是如何使它适用于方法参数,因为我要传递对实体进行操作且必须具有实体类型的谓词。有可能吗?