我注意到,默认情况下,Entity Framework Code First忽略了实例化ICollection<T>
属性,除非集合中至少有一个项目。我更希望保证集合永远是空的HashSet
(即HashSet
,零项)而不是null
如果没有项目。
EF Code First是否有任何约定或设置可以启用此功能?
答案 0 :(得分:10)
在实体的构造函数中设置实例化集合:
public sealed partial class EntityClass
{
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors",
Justification = "EF 4.1 requires them to be virtual, and RIA Services requires the collections to be instantiated.")]
public EntityClass()
{
OtherEntities = new List<OtherEntity>();
}
public virtual ICollection<OtherEntity> OtherEntities { get; set; }
}
FXcop有抑制信息。