为什么在创建列表对象的模型中创建方法

时间:2014-09-10 22:56:52

标签: entity-framework

我在另一个问题中找到了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; }
}

2 个答案:

答案 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类后,您不必初始化集合导航属性,它将在您第一次“触摸”后自动填充。