在针对 EF 4.0 使用存储库模式时,谁能告诉我他们如何实现函数导入的使用?
我们有一个映射到候选实体的表,还有一个从映射到候选实体的现有存储过程中导入的函数。这在 EF 中效果很好,但我们通过使用 Repositories 进行抽象,该 Repositories 采用其构造函数 IObjectSet,其中 T 是 POCO 实体。但是,这意味着我无法获得对函数导入的引用。我能看到的唯一方法是将 ObjectContext 的引用传递给需要它的存储库,但这对我来说感觉有点设计味道。
即使我们的几个存储库使用自定义接口进行了扩展,我们仍然面临同样的问题。
public class CandidateRepository : Repository<Candidate>, ICandidateRepository
{
public CandidateRepository(IObjectSet<Candidate> entities)
: base(entities)
{
}
public Candidate GetByEmail(string email)
{
return Entities.SingleOrDefault(c => c.EmailAddress.Equals(email));
}
public bool CandidateExists(string candidateNumber)
{
return Entities.SingleOrDefault(c => c.Number.Equals(candidateNumber)) != null;
}
public Candidate GetByNumber(string number)
{
return Entities.SingleOrDefault(c => c.Number.Equals(number));
}
public Candidate GetMember(string number)
{
return new Candidate(); //This one needs to return from the Function Import
}
}
非常感谢任何建议。