【发布时间】:2018-07-28 02:39:12
【问题描述】:
因此,我有越来越多的数据库模型使用List<T> 来实现它们的“许多”导航属性。一个例子可能是这样的:
public class ResourceType
{
public int ResourceTypeId { get; set; }
public string Name { get; set; }
public List<Resource> Resources { get; set; }
}
我在阅读有关使用 C# 时的好习惯是避免返回 null 而不是空列表。我可以想出几种方法来实现这一点。
public List<Resource> Resources { get; set; } = new List<Resource>();
或者甚至可以这样做:
private List<Resource> _Resources { get; set; }
public List<Resource> Resources {
get {
if (_Resources == null) {
_Resources = new List<Resource> ();
}
return _Resources;
}
set {
_Resources = value;
}
}
在其他地方,人们推荐使用ICollection<T>,如何防止它返回 null?
同时,设计 EF 模型时的经验法则是,模型应尽可能接近地表示表格。这条规则是否违反了上述任何一个示例?
所有这些都让我想到一个问题:处理这类财产的最佳方式是什么?应该使用什么类型,应该防止它返回null?在这种情况下防止这种情况的最佳情况是什么?
【问题讨论】:
标签: c# entity-framework entity-framework-core asp.net-core-2.0 ef-core-2.0