使用 LINQ 和 Lambda 表达式在 C# 中的 ViewModel 对象 Class 中赋值

Using LINQ and Lambda expression to assign value in ViewModel Object Class in C#

我想将 LIST 中的值分配给 ViewModel 中的另一个 Class 对象“_People.People”,循环作为选择 1 _uof.PeopleRepository.GetAll() 给我 PeopleEntity 对象数据

视图模型

public class PeopleViewModel
{
    public PeopleEntity People { get; set; }
    public PeopleUnitEntity PeopleUnit { get; set; }
}

植入class

 public override IList<PeopleViewModel> GetPeopleByPersonCode(int PersonCode)
    {
        IList<PeopleViewModel> _People = null;

        using (var _uof = new FES_UOF())
        {
             _People = _uof.PeopleRepository.GetAll().Where(x => x.PERSON_CODE == PersonCode).ToList();

        //I need help here; want to put above list value to _people.People object 
        }

        return _People;
    }

人物视图模型

 [Table("FES.PEOPLE")]
public class PeopleEntity
{
    [Key]
    public int PERSON_CODE { get; set; }

    [StringLength(50)]
    public string FORENAME { get; set; }

    [StringLength(240)]
    public string MIDDLE_NAMES { get; set; }

    [Required]
    [StringLength(50)]
    public string SURNAME { get; set; }

    [StringLength(50)]
    public string PREVIOUS_SURNAME { get; set; }

    [StringLength(8)]
    public string TITLE { get; set; }
//remaining code

第二次更新问题

我已经实现了在 viewModel 对象中获取数据,但我的问题仍然存在,我是如何实现这一目标的,即通过使用没有循环的 Lambda 表达式。

工作事务如下;

_PeopleModel = (from pl in _uof.PeopleRepository.GetAll()
                 where pl.PERSON_CODE == PersonCode
                 select new PeopleViewModel { People = pl}).ToList();

输出 GetPeopleByPersonCode

我试过像下面这样但是没有用;

var queryResult = new PeopleViewModel { People =  _uof.PeopleRepository.GetAll().Where(x => x.PERSON_CODE == PersonCode)  };

如果我没理解错的话,您想将 linq 样式转换为 lambda 样式。如果是这样,您可以这样做:

_PeopleModel = _uof.PeopleRepository.GetAll()
.Where (x= > x.PERSON_CODE == PersonCode)
.Select(pl => new PeopleViewModel { People = pl})
.ToList();

我这么说是因为在您的打印屏幕中,您在人物 属性 中有结果。

我从 LINQ 和 Lambda 中找到了答案

 public override IList<PeopleViewModel> GetPeopleByPersonCode(int PersonCode)
    {
        IList<PeopleViewModel> _PeopleModel = null;
        IList<PeopleViewModel> _PeopleModel_b = null;

        using (var _uof = new FES_UOF())
        {
            _PeopleModel_b =   _uof.PeopleRepository.GetAll().Where(x => x.PERSON_CODE == PersonCode).Select( pl => new PeopleViewModel { People = pl}).ToList();

          //or
            _PeopleModel_b = (from pl in _uof.PeopleRepository.GetAll()
                              where pl.PERSON_CODE == PersonCode
                              select new PeopleViewModel { People = pl}).ToList();
        }

        return _PeopleModel;
    }