如何解决将数据添加到嵌套Web网格的模型中
打招呼,我必须从四个表创建一个模型,但是我很困惑地将两个列表附加在一起。变量结果在Models类中声明如下:“内部MainGridDB结果”,当我也添加简历表myRec时,我将从结果中丢失数据。仅供参考,我希望对Linq-to-Entities提供任何帮助。谢谢大家。
public ActionResult GridSection3()
{
FDR_CorpEntities db = new FDR_CorpEntities();
var result = (from a in db.M_Employees
where a.Employee_Rec_Key == 3633
join b in db.M_Offices on a.Office_Rec_Key equals b.Office_Rec_Key
join c in db.S_Emp_Education on a.Employee_Rec_Key equals c.Employee_Rec_Key
orderby a.Employee_Rec_Key ascending,c.DegreeAwardedYear descending
select new MainGridDb
{
Employee_Rec_Key = a.Employee_Rec_Key,First_Name = a.First_Name,Middle_Name = a.Middle_Name,Last_Name = a.Last_Name,Clearance = a.Clearance,Active = a.Active,CurrentLaborCategory = a.CurrentLaborCategory,Street_1 = b.Street_1,City = b.City,ST = b.ST,DegreeType = c.DegreeType
}).ToList();
result = result.DistinctBy(s => new { s.Employee_Rec_Key }).ToList();
List<MainGridDb> myRec = new List<MainGridDb>();
using (FDR_CorpEntities dc = new FDR_CorpEntities())
{
var o = result.OrderByDescending(v => v.Employee_Rec_Key);
foreach (var i in o)
{
var od = dc.S_Emp_Resume.Where(a => a.Employee_Rec_Key.Equals(i.Employee_Rec_Key)).ToList();
myRec.Add(new MainGridDb { result = i,LstS_Emp_Resume = od });
}
}
return View(myRec);
}
解决方法
这将满足模型要求。
public ActionResult GridSection3()
{
QED_CorpEntities db = new QED_CorpEntities();
var result = (from a in db.M_Employees
join b in db.M_Offices on a.Office_Rec_Key equals b.Office_Rec_Key
join c in db.S_Emp_Education on a.Employee_Rec_Key equals c.Employee_Rec_Key
//orderby a.Employee_Rec_Key ascending,c.DegreeAwardedYear descending
orderby a.Last_Name ascending,c.DegreeAwardedYear descending
select new MainGridDb
{
Employee_Rec_Key = a.Employee_Rec_Key,First_Name = a.First_Name,Middle_Name = a.Middle_Name,Last_Name = a.Last_Name,Clearance = a.Clearance,Active = a.Active,CurrentLaborCategory = a.CurrentLaborCategory,Street_1 = b.Street_1,City = b.City,ST = b.ST,DegreeType = c.DegreeType
}).ToList();
result = result.DistinctBy(s => new { s.Employee_Rec_Key }).ToList();
result.ToList();
//List to hold muitl records
List<MainGridDb> myRec = new List<MainGridDb>();
//
using (QED_CorpEntities dc = new QED_CorpEntities())
{
var o = result.OrderByDescending(v => v.Employee_Rec_Key);
foreach (var i in o)
{
var od = dc.S_Emp_Resume.OrderByDescending(a => a.FromDate).Where(a => a.Employee_Rec_Key.Equals(i.Employee_Rec_Key)).ToList();
myRec.Add(new MainGridDb { LstS_Emp_Resume = od });
}
}
IEnumerator<MainGridDb> enumerator = result.GetEnumerator();
int ix = 0;
while (enumerator.MoveNext())
{
var x = enumerator.Current;
myRec[ix].Employee_Rec_Key = x.Employee_Rec_Key;
myRec[ix].Last_Name = x.Last_Name;
myRec[ix].First_Name = x.First_Name;
myRec[ix].CurrentLaborCategory = x.CurrentLaborCategory;
myRec[ix].Active = x.Active;
myRec[ix].DegreeType = x.DegreeType;
myRec[ix].ST = x.ST;
myRec[ix].Street_1 = x.City;
ix++;
}
return View(myRec);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。