我想找出一种方法将包含语句的集合传递到我的存储库,以便我可以让它包含特定的实体。以下是我的存储库中的一些示例代码。将多个Include语句传递给存储库?
public TEntity GetById(Guid id)
{
return id != Guid.Empty ? GetSet().Find(id) : null;
}
private IDbSet<TEntity> GetSet()
{
return _unitOfWork.CreateSet<TEntity>();
}
GetByID方法调用GetSet来返回实体集。我在想,如果我能以某种方式传递一组实体以包含(通过表达式)作为GetById的一部分,这样我就不必将GetSet公开给我的服务。所以,像这样:
var entity = _repository.GetById(theId,e => {e.Prop1,e.Prop2,e.Prop3});
然后我可以传递到表达我的GETSET方法,并将其传递到一个包含语句。思考?
完美!谢谢 – DDiVita
@Paige:我试过使用这段代码,但是当我追踪SQL时,没有一个包含实际添加(但是懒加载可能会导致错觉)。但是,如果我硬编码相同包括成一行** var set = _unitOfWork.CreateSet().include(includeProperties [0]); **然后包含出现在SQL中。因此,在分别编写Includes时,看起来类型上有些不同,这些我还没有完成。 –
Appetere
现在就开始工作 - 需要对代码进行一些更改。我用我使用的代码添加了一个新答案。 – Appetere