是否可以在数据层中执行多个查询和过滤。
问题:我需要在此层上执行此操作,因为我在controller.js上执行此操作时遇到性能和缓存问题(使用angularjs)。
概述:我需要从学生数据库表中每年显示不同的表。当管理员点击第一年的按钮时,它将显示所有一年级学生(其他过滤和排序在表中)
有四个html显示表:第1年,第2年,第3年和第4年
我可以在数据层中执行此操作吗?见下面的代码:
public IQueryable<RequestStudents> Get()
{
StudentsModelContainer context = DbContextFactory<StudentsModelContainer>.Create();
var result = context.RequestStudentSet;
return result;
}
以上代码将显示所有学生
我已经尝试了以下代码,但它只适用于第一年,我无法添加其他三个查询
public IQueryable<RequestStudents> Get()
{
StudentsModelContainer context = DbContextFactory<StudentsModelContainer>.Create();
var result = context.RequestSet.Where(x => x.YearLvl == 1);
return result;
}
答案 0 :(得分:1)
是的,你可以将参数传递给Get方法,或者你可以重载Get方法,如下所示
public IQueryable<RequestStudents> Get()
{
StudentsModelContainer context = DbContextFactory<StudentsModelContainer>.Create();
var result = context.RequestSet.Where(x => x.YearLvl == 1);
return result;
}
public IQueryable<RequestStudents> Get(int yearLevel)
{
StudentsModelContainer context = DbContextFactory<StudentsModelContainer>.Create();
var result = context.RequestSet.Where(x => x.YearLvl == yearLevel);
return result;
}
要返回FirstorDefault值,您可以按以下方式更新您的方法
public RequestStudents Get(int yearLevel)
{
StudentsModelContainer context = DbContextFactory<StudentsModelContainer>.Create();
return context.RequestSet.Where(x => x.YearLvl == yearLevel).FirstOrDefault();
}