我有桌子:老师和学生。
我们有一个SpecialProjects表,教师和学生被分配到一起完成项目
SpecProjID, SpecProjName, isTeacher , teacherID , isStudent, studentID
我们必须使用以下值填充每个特殊项目的View:FirstName,LastName,Email。 ToList()
我们需要从两个单独的表中获取信息,例如:
If isTeacher then get FirstName from Teacher table
If isStudent then get FirstName from Student table
并填充View.ToList()
如何使用Linq从单独的表中填充一个视图?
答案 0 :(得分:1)
这是你想要的吗?
var view = Teachers.Select(
t => new { t.FirstName, t.LastName, t.Email } ).
Union( Students.Select(
t => new { t.FirstName, t.LastName, t.Email }) ).ToList();
答案 1 :(得分:0)
@Phil谢谢,它有效..我能够让整个代码在你的帮助下工作。联盟很光滑:)
var rosterTeacher = ctx.SpecialProject
.Where(sp => sp.caseID == cID && sp.isTeacher)
.Join(ctx.Teachers, m => m.teacherID, p => p.teacherID,
(sp, m) => new SpecProjRosterView
{
RosterEmail = m.memEMail,
RosterName = (m.memLastName + ", " + m.memFirstName),
RosterVerified = sp.caseRosterIsVerified
}).ToList();
var rosterStudents = ctx.SpecialProject
.Where(c => c.caseID == cID && c.isStudents)
.Join(ctx.CaseStudents, u => u.studentID, p => p.studentID,
(sp, m) => new SpecProjRosterView
{
RosterEmail = m.caseStudentsEMail,
RosterName = (m.caseStudentsLastName + ", " + m.caseStudentsFirstName),
RosterVerified = sp.caseRosterIsVerified
}).ToList();
return rosterTeacher.Union(rosterStudents).ToList();