gpt4 book ai didi

entity-framework - Entity Framework 代码优先和 CA2227 "Collection Properties should be read only"

转载 作者:行者123 更新时间:2023-12-03 14:36:06 25 4
gpt4 key购买 nike

Entity Framework Code First 中的一对多或多对多关系如下所示:-

public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}

这违反了代码分析规则 2227“集合属性应该是只读的”。

使 setter protected 无济于事,并将其设为私有(private):-
public class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; private set; }
}

那么当然违反 CA1811 “Foo.Bars.set(ICollection ) 似乎没有上游公共(public)或 protected 调用者”。

我宁愿不要在全局范围内关闭该规则,因为它存在的防止情况相当重要,但每次我想声明关系时在本地抑制它似乎是关闭的。有没有办法声明不违反 CA2227 的关系?

最佳答案

将您的代码更改为以下内容:

public class Foo {
public Foo() {
Bars = new Collection<Bar>();
}

public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; private set; }
}

关于entity-framework - Entity Framework 代码优先和 CA2227 "Collection Properties should be read only",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11139836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com