我应该实例化一个新模型吗

本文关键字:模型 新模型 一个 我应该 实例化 | 更新日期: 2023-09-27 17:57:27

MVC。我正在将数据传递到模型中的视图。在我的存储库中,我将linq结果映射到模型。在控制器中,我发送数据。我应该做哪一个:

List<PersonModel> people = new List<PersonModel>();
people = repo.GetPersonList();
return View(people);

List<PersonModel> people = repo.GetPersonList();
return View(people);

正如我所提到的,在回购中,我将结果映射到模型,并使用一个新的模型实例:

var query = from p in _db.Person
                     orderby f.LastName
                     select new PersonModel
                     {
                         Id = f.PersonId,
                         LastName = f.LastName
                     };
return query.ToList();

任何一种都有效。我使用第二个,因为根据我的想法,回购是创建一个新的模型,然后在我调用回购时将其传递给控制器。GetPersonList函数。我应该在控制器中也创建一个新实例,还是按原样继续?

我应该实例化一个新模型吗

选择第二个。

第一个代码段有一个冗余的new List<T>调用,它分配一个新列表,而下一行则用repo中新创建的列表覆盖该引用。绝对没有必要。

如果在您的控制器上,repository负责提供ViewModel,而您不想让控制器向ViewModel添加新的PersonModel,那么您绝对应该坚持第二个