我在另一个问题中找到了example。我很奇怪wat的目的是由方法Question()服务。似乎在创建Question对象时,Answer属性被创建为Answer [s]的List对象。
这是我第一次看到这种技术,作为一名新程序员,这种模式的好处是什么?
public class Question
{
public Question()
{
this.Answers = new List<Answer>();
}
public int QuestionId { get; set; }
public string Title { get; set; }
public virtual ICollection<Answer> Answers { get; set; }
}
public class Answer
{
public int AnswerId { get; set; }
public string Text { get; set; }
}
答案 0 :(得分:0)
我发现这种模式对于简化对象的使用很有用。即,通过在构造函数中创建Answers列表,确保Answers永远不为null。它只是更容易使用Question对象。因此,在使用问题对象的代码中,您可以执行此操作
foreach (Answer in question.Answers)
{
...
}
无需先检查是否有问题。答案为空:
if (question.Answers != null)
{
foreach (Answer in question.Answers)
{
...
}
}
答案 1 :(得分:0)
我认为当您出于某种原因不想使用lazy loading时会使用此技术。启用延迟加载并正确配置POCO类后,您不必初始化集合导航属性,它将在您第一次“触摸”后自动填充。