私は2つの基本クラス間の関係があります。約半分MSDNドキュメント http://msdn.microsoft.com/en-us/library/ms379564%28VS.80%29.aspx(パージェネリック戻り値の型
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
};
}
}
次のような
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
}
そして、彼らの具体的な実装をダウン) と同様の(ただし同一ではない)クエストインSO Specifying the return type of an abstract method from a Base Class according to a Sub Class
私はオーバーライドされたメソッドGetCandidatesの戻り値の型に対して私の具現化した実装を利用することができますが、それは私が望むものではありません。別の抽象クラスの具体的な実装を利用したいと思います。これは親子データベースの関係です。私は達成しようとしていることは可能ですか?私は現在、GetCandidatesの戻り値の型が一致しないコンパイル時エラーが発生します。
おかげ
そして、あなたはそれを私にビート:
はこのような何かを試してみてください。 –パブリッククラスRecruiterA:RecruiterBase –
クラップス、それは私の疑惑でしたが、マネージャー - >候補者、候補者 - >アポイントメントなど、私のデータモデルにはいくつかのエンティティがあります。厳密に型指定されたクラスの具体的な実装を返す場合は、これらのジェネリック型を互いに定義する必要があります。それは膨らんで、扱いにくいようになるかもしれないようです。私は何かが欠けていることを望んでいた。 –