Asp.net mvc 将var生成查询转换为强类型数据
我的控制器隐式创建var x,如下所示:Asp.net mvc 将var生成查询转换为强类型数据,asp.net-mvc,linq,Asp.net Mvc,Linq,我的控制器隐式创建var x,如下所示: var x = from sem in db.Semesters join ss in db.StudentSemesters on sem.Id equals ss.SemesterId into sss from ss in sss.Where(ss => ss.StudentId == id).DefaultIfEmpty() select new
var x = from sem in db.Semesters
join ss in db.StudentSemesters on sem.Id equals ss.SemesterId into sss
from ss in sss.Where(ss => ss.StudentId == id).DefaultIfEmpty()
select new
{
SemsterName = sem.Name,
SemesterId = sem.Id,
IsAssociated = ss.StudentId != null
};
我不想按原样将此数据传递给视图,而是希望将其作为一个强类型的业务模型传递给视图模型中使用的名为StudentSemesterAssociation(成员:string-SemesterName、int-SemesterId、bool-StudentIsAssociated)的业务模型
我如何调整上面的var生成查询以返回StudentSemesterAssociation
ViewModel.StudentSemesterAssociation=
注意,Guy在查询的
选择部分的新建
关键字后添加您的类名:
var x = from sem in db.Semesters
join ss in db.StudentSemesters on sem.Id equals ss.SemesterId into sss
from ss in sss.Where(ss => ss.StudentId == id).DefaultIfEmpty()
select new StudentSemesterAssociation
{
SemsterName = sem.Name,
SemesterId = sem.Id,
IsAssociated = ss.StudentId != null
};
这将使x
typeIEnumerable
代替匿名类型的集合
顺便说一句,var
不会使变量弱类型化。您应该阅读有关和隐式键入的局部变量的信息。在查询的选择部分的new
关键字后添加类名:
var x = from sem in db.Semesters
join ss in db.StudentSemesters on sem.Id equals ss.SemesterId into sss
from ss in sss.Where(ss => ss.StudentId == id).DefaultIfEmpty()
select new StudentSemesterAssociation
{
SemsterName = sem.Name,
SemesterId = sem.Id,
IsAssociated = ss.StudentId != null
};
这将使x
typeIEnumerable
代替匿名类型的集合
顺便说一句,var
不会使变量弱类型化。您应该阅读有关和隐式键入的局部变量的信息。在查询的选择部分的new
关键字后添加类名:
var x = from sem in db.Semesters
join ss in db.StudentSemesters on sem.Id equals ss.SemesterId into sss
from ss in sss.Where(ss => ss.StudentId == id).DefaultIfEmpty()
select new StudentSemesterAssociation
{
SemsterName = sem.Name,
SemesterId = sem.Id,
IsAssociated = ss.StudentId != null
};
这将使x
typeIEnumerable
代替匿名类型的集合
顺便说一句,var
不会使变量弱类型化。您应该阅读有关和隐式键入的局部变量的信息。在查询的选择部分的new
关键字后添加类名:
var x = from sem in db.Semesters
join ss in db.StudentSemesters on sem.Id equals ss.SemesterId into sss
from ss in sss.Where(ss => ss.StudentId == id).DefaultIfEmpty()
select new StudentSemesterAssociation
{
SemsterName = sem.Name,
SemesterId = sem.Id,
IsAssociated = ss.StudentId != null
};
这将使x
typeIEnumerable
代替匿名类型的集合
顺便说一句,var
不会使变量弱类型化。您应该阅读有关和隐式类型局部变量的信息