EF Code First约定允许ICollection <t>属性为空集合而不是null?</t>

时间:2011-12-06 23:49:07

标签: c# entity-framework entity-framework-4.1 ef-code-first code-first

我注意到,默认情况下,Entity Framework Code First忽略了实例化ICollection<T>属性,除非集合中至少有一个项目。我更希望保证集合永远是空的HashSet(即HashSet,零项)而不是null如果没有项目。

EF Code First是否有任何约定或设置可以启用此功能?

1 个答案:

答案 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有抑制信息。