Iai*_*way 9 code-analysis entity-framework ef-code-first
Entity Framework Code First中的一对多或多对关系如下所示: -
public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这违反了代码分析规则2227"集合属性应该只读".
使setter受到保护并没有帮助,并将其设为私有: -
public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
然后当然违反了CA1811"Foo.Bars.set(ICollection <Bar>)似乎没有上游公共或受保护的呼叫者".
我宁愿不全局关闭规则,因为它存在的预防情况相当重要,但每次我想声明关系时在本地抑制它似乎都没有了.有没有办法声明不违反CA2227的关系?
Pro*_*ing 10
将您的代码更改为以下内容:
public class Foo {
public Foo() {
Bars = new Collection<Bar>();
}
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2369 次 |
| 最近记录: |