在以前的项目开发之中,经常会遇到这样一个问题:比如在外面项目的架构设计之中,我们采用MVC和EntityFramework来构建一个Web应用程序。比如我们采用常用的多层架构,例如有Presentation层、BusinessLogic层、DataAccess层等,各层之间是相对独立并且职责分明的。比如我们在Presentation层中会定义ViewModel,在DataAccess层中的DbContext部分又会由EntityFramework来自动生成StorageModel,或者叫做DataModel。然后我们从DataAccess层从数据库抓取到数据之后需要将这些数据传递给viewModel,并最终呈现给前段用户,当然两种Model之间定义的字段(属性)可能会有所区别,这个我们将会在稍后讨论。
我们先来看看如何解决这一类问题。首先最朴素笨拙的办法就是,逐个属性的为对象赋值,例如这样:
var viewModels = new List<EmployeeViewModel>();
List<EmployeeStorageModel> storageModels = new List<EmployeeStorageModel>(); if (storageModels.Count > 0)
{
EmployeeViewModel viewModel = null; foreach (var storageModel in storageModels)
{
viewModel.Number = storageModel.Name;
viewModel.Nam

