次の抽象クラスとインターフェースがあります。
public interface ITypedEntity{
TypedEntity Type { get; set; }
}
public abstract class TypedEntity:INamedEntity{
public abstract int Id{get;set;}
public abstract string Name { get; set; }
}
しかし、ITypedEntity を実装し、TypedEntity の具体的な実装を持つクラスを作成しようとすると、次のエラーが発生します。
Magazine does not implement interface member ITypedEntity.Type. Magazine.Type cannot implement 'ITypedEntity.Type' because it does not have the matching return type of 'TypedEntity'
私の具体的な実装のコードは以下のとおりです
public class Magazine:INamedEntity,ITypedEntity
{
public int Id {get;set;}
[MaxLength(250)]
public string Name {get;set;}
public MagazineType Type { get; set; }
}
public class MagazineType : TypedEntity
{
override public int Id { get; set; }
override public string Name { get; set; }
}
何が起こっているのか理解できたと思いますが、MagazineType は TypedEntity であるため、その理由はわかりません。
ありがとう。
更新 1 このクラスを EF CodeFirst で使用したいこと、および ITypedEntity を実装するクラスごとに異なるテーブルが必要であることを言及する必要があります。