我在两个基类之间有关系:
public abstract class RecruiterBase<T>
{
// Properties declare here
// Constructors declared here
public abstract IQueryable<T> GetCandidates();
}
public abstract class CandidateBase<T>
{
// Properties declare here
// Constructors declared here
}
以及它们的具体实现如下:
public class CandidateA : CandidateBase<CandidateA>
{
// Constructors declared here
}
public class RecruiterA : RecruiterBase<RecruiterA>
{
// Constructors declared here
// ----HERE IS WHERE I AM BREAKING DOWN----
public override IQueryable<CandidateA> GetCandidates()
{
return from c in db.Candidates
where c.RecruiterId == this.RecruiterId
select new CandidateA
{
CandidateId = c.CandidateId,
CandidateName = c.CandidateName,
RecruiterId = c.RecruiterId
};
}
}
根据 MSDN 文档 http://msdn.microsoft.com/en-us/library/ms379564%28VS.80%29.aspx(大约一半)和一个类似(但不相同)的问题 SO 指定返回类型根据子类来自基类的抽象方法
我可以将我的 concreate 实现用于我的重写方法 GetCandidates 的返回类型,但这不是我想要的,我想利用不同抽象类的具体实现。这是父/子数据库关系。我想要实现的目标是可能的吗?我目前收到一个编译时错误,我的 GetCandidates 返回类型不匹配。
谢谢