Entity Framework Code First での 1 対多または多対多の関係は、次のようになります。
public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
これは、コード分析規則 2227「コレクション プロパティは読み取り専用にする必要があります」に違反しています。
セッターを保護しても役に立たず、プライベートにします:-
public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; private set; }
}
もちろん、CA1811「Foo.Bars.set(ICollection<Bar>) にはアップストリームのパブリックまたは保護された呼び出し元がないようです」に違反しています。
防止するために存在する状況はかなり重要なので、ルールをグローバルにオフにしたくありませんが、関係を宣言するたびにローカルでルールを抑制するのはオフに思えます. CA2227に違反しない関係を宣言する方法はありますか?