C# 代码优先实体中的自定义ICollection列表设置器
我使用的是EF6,我想将集合的初始化移到实体本身,这样代码就可以编写一次,教程不会这样做,只是想知道它是否可以?我对底层实体框架的了解还不够,还不知道这是否合适 例如:C# 代码优先实体中的自定义ICollection列表设置器,c#,asp.net-mvc,entity-framework,ef-model-first,C#,Asp.net Mvc,Entity Framework,Ef Model First,我使用的是EF6,我想将集合的初始化移到实体本身,这样代码就可以编写一次,教程不会这样做,只是想知道它是否可以?我对底层实体框架的了解还不够,还不知道这是否合适 例如: [NotMapped] private List<MySuggestion> _mySelections; public virtual ICollection<MySuggestion> mySuggestions { get {
[NotMapped]
private List<MySuggestion> _mySelections;
public virtual ICollection<MySuggestion> mySuggestions {
get
{
if (_mySelections == null)
{
_mySelections = new List<MySuggestion>();
}
return _mySelections;
}
set;
}
[未映射]
私人名单选举;
公共虚拟ICollection我的建议{
得到
{
如果(_==null)
{
_mySelections=新列表();
}
重新选举;
}
设置
}
另一种选择是,根据需要在控制器/存储库中初始化列表,如下所示:
if (thing.mySuggestions == null){
thing.mySuggestions = new List<Suggestion> ();
}
if(thing.mySuggestions==null){
thing.mySuggestions=新列表();
}
应该可以正常工作。不过,您需要为setter指定一个主体
set
{
_mySelections = value;
}