使用 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;
}
我想将 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;
}