EF 4.2,Repository& UoW - 如何包含关系?

时间:2011-12-22 13:50:39

标签: entity-framework-4 repository-pattern code-first

一直在使用EF 4.2,但没有使用存储库或工作模式单元。我正试图转向他们,但遇到了问题。我已经按照你创建repostirotybase抽象类的模型,但是在我想使用.Include()方法进行预先加载的情况下制作查询时遇到了麻烦。这是你在存储库中烘焙的东西(因此每个存储库都需要实现它),或者进一步在消耗数据的层上。

令人困惑的是,如果我必须把它放在存储库中(似乎是这种情况),那就是限制因为我必须为我的消费者提供一个适合所有人的尺寸吗?

1 个答案:

答案 0 :(得分:1)

创建特定存储库并添加特定方法以加载具有关系的实体。例如:

public class ProductRepository
{
    public Product GetProductWithFeatures(int key)
    {
        return context.Products
                      .Include(p => p.Features)
                      .FirstOrDefault(p => p.Id == key);
    }
}

另一种方法是在您的存储库中公开IQueryable,这样您就可以直接调用Include,但是这样的存储库在将您的上层与EF分离时会部分失败。