如何在Entity Framework中的界面中使用虚拟属性?:
public interface ICommentable
{
int CommentableId { get; set; }
virtual ICollection<Comment> Comments { get; set; }
}
这会引发虚拟关键字的错误,但如果我这样做:
public interface ICommentable
{
int CommentableId { get; set; }
ICollection<Comment> Comments { get; set; }
}
然后这个(下面)抛出一个错误(&#34;没有实现......&#34;)
public class Something : ICommentable
{
int CommentableId { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
...more properties....
}
答案 0 :(得分:2)
它会引发错误,因为CommentableId
不是public
。它与将virtual
放在有效的类Comments
上无关。
在界面中使用虚拟无效,因为它没有意义。定义接口时,实现类必须实现其所有成员。虚拟关键字意味着派生类可以覆盖现有实现,但接口没有实现。