1

Entity Framework のインターフェイスで仮想プロパティを使用するにはどうすればよいですか?:

public interface ICommentable
{
    int CommentableId { get; set; }
    virtual ICollection<Comment> Comments { get; set; }
}

これは virtual キーワードのエラーをスローしますが、次のようにすると:

public interface ICommentable
{
    int CommentableId { get; set; }
    ICollection<Comment> Comments { get; set; }
}

次に、これ(以下)はエラーをスローします(「実装していません...」)

public class Something : ICommentable
{
    int CommentableId { get; set; }
    public virtual ICollection<Comment> Comments { get; set; }
    ...more properties....
}
4

1 に答える 1

2

CommentableIdではないため、エラーがスローされますpublic。有効なクラスに配置virtualすることとは関係ありません。Comments

意味がないため、インターフェイスで virtual を使用することは有効ではありません。インターフェイスを定義する場合、実装クラスはそのすべてのメンバーを実装する必要があります。Virtual キーワードは、派生クラスが既存の実装をオーバーライドできるが、インターフェイスには実装がないことを意味します。

于 2012-09-19T22:02:39.107 に答える