我有一个看起来像这样的实体
public class SlideSet {
public SlideSet(string name) : this() {
Name = name
}
public SlideSet() {
Params = new HashSet<SlideSetParameter>();
}
[Required]
public string Name { get; set; }
public virtual ICollection<SlideSetParameter> Params { get; set; }
}
我只是注意到我实际上并没有使用第二个构造函数,而且它在我的域中实际上没有任何意义所以我将其设为私有。 Params阵列突然停止加载,总是给我一个长度为0.发生了什么事?为了加载它我需要我的构造函数至少受到保护。为什么呢?
答案 0 :(得分:5)
答案 1 :(得分:0)
您需要将默认构造函数设置为public,因为这是Entity Framework将用于创建对象的内容。将它作为私有,它无法初始化Params
属性,因此尝试将任何SlideSetParameter
添加到空对象。