考虑以下用c#.net 4.0编写的类(通常在nhibernate类中找到):
public class CandidateEntity : EntityBase
{
public virtual IList<GradeEntity> Grades { get; set; }
public CandidateEntity()
{
Grades = new List<GradeEntity>();
}
}
Run Code Online (Sandbox Code Playgroud)
这一行得到了一个有根据的警告"构造函数中的虚拟成员调用".我应该在哪里初始化这个集合?
问候,
Mat*_*int 11
支持领域是一种方式.另一种是使用私人二传手.这在nHibernate中运行良好.
public virtual IList<GradeEntity> Grades { get; private set; }
public CandidateEntity()
{
Grades = new List<GradeEntity>();
}
Run Code Online (Sandbox Code Playgroud)
使用支持字段并初始化构造函数中的支持字段.或者将课程密封.
private IList<GradeEntity> _grades
public virtual IList<GradeEntity> Grades
{
get { return _grades; }
set { _grades = value; }
}
public CandidatesEntity()
{
_grades = new List<GradeEntity>();
}
Run Code Online (Sandbox Code Playgroud)