Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在MVC中将不同模型的多个LINQ结果排序为一个列表_C#_Asp.net Mvc_Linq_Model View Controller - Fatal编程技术网

C# 在MVC中将不同模型的多个LINQ结果排序为一个列表

C# 在MVC中将不同模型的多个LINQ结果排序为一个列表,c#,asp.net-mvc,linq,model-view-controller,C#,Asp.net Mvc,Linq,Model View Controller,我试图对学生、同事或客人的用户列表进行排序,并根据他们的姓名在我的视图中对他们进行排序 代码如下: public ActionResult Index() { var db = new PraktikumDataContext(); var model = new List<AdminUserListItem>(); var studs = (from stud in db.Students se

我试图对学生、同事或客人的用户列表进行排序,并根据他们的姓名在我的视图中对他们进行排序

代码如下:

public ActionResult Index()
        {
            var db = new PraktikumDataContext();
            var model = new List<AdminUserListItem>();
            var studs = (from stud in db.Students select new AdminUserListItem() {Name = stud.FH_Angehörige.Name, LastLogin = stud.FH_Angehörige.FE_Nutzer.Letzter_Login, Rolle = "Student"}).OrderBy(stud => stud.Name);
            model.AddRange(studs);
            var mits = (from mit in db.Mitarbeiters select new AdminUserListItem() {Name = mit.FH_Angehörige.Name, LastLogin = mit.FH_Angehörige.FE_Nutzer.Letzter_Login, Rolle = "Mitarbeiter"}).OrderBy(stud => stud.Name);
            model.AddRange(mits);
            var gasts = (from gast in db.Gasts select new AdminUserListItem() {Name = gast.Name, LastLogin = gast.FE_Nutzer.Letzter_Login, Rolle = "Gast"}).OrderBy(stud => stud.Name);
            model.AddRange(gasts);

            model = model.OrderByDescending()
            return View(model);
        }
public ActionResult Index()
{
var db=new PraktikumDataContext();
var模型=新列表();
var studs=(从db.Student中的stud选择new AdminUserListItem(){Name=stud.FH_Angehörige.Name,LastLogin=stud.FH_Angehörige.FE_Nutzer.Letzter_Login,Rolle=“Student”});
型号。添加范围(螺柱);
var mits=(在db.Mitarbeiters中从mit中选择new AdminUserListItem(){Name=mit.FH_Angehörige.Name,LastLogin=mit.FH_Angehörige.FE_Nutzer.Letzter_Login,Rolle=“Mitarbeiter”}).OrderBy(stud=>stud.Name);
模型。添加范围(mits);
var gasts=(从db.gasts中的gast中选择新的AdminUserListItem(){Name=gast.Name,LastLogin=gast.FE_Nutzer.Letzter_Login,Rolle=“gast”}).OrderBy(stud=>stud.Name);
型号:AddRange(gasts);
model=model.OrderByDescending()
返回视图(模型);
}

我已经用OrderBy对每个模型进行了排序,但由于我有3个模型,我现在有点困惑,如何将它们作为一个列表,然后对它们进行排序并在我的网站上显示它们。

考虑使用LINQ union对服务器进行一次调用:

public ActionResult Index()
        {
            var db = new PraktikumDataContext();

            var model = 
                 (from stud in db.Students
                  select new AdminUserListItem()
                  {
                    Name = stud.FH_Angehörige.Name, 
                    LastLogin = stud.FH_Angehörige.FE_Nutzer.Letzter_Login, 
                    Rolle = "Student"}
                  ).Union(
                  from mit in db.Mitarbeiters
                  select new AdminUserListItem()
                  {
                    Name = mit.FH_Angehörige.Name, 
                    LastLogin = mit.FH_Angehörige.FE_Nutzer.Letzter_Login, 
                    Rolle = "Mitarbeiter"}
                  ).Union(
                  from gast in db.Gasts
                  select new AdminUserListItem()
                  {
                    Name = gast.FH_Angehörige.Name, 
                    LastLogin = gast.FE_Nutzer.Letzter_Login, 
                    Rolle = "Gast"}
                  )
                  .OrderByDescending(a => a.Name)
                  .ToList();

            return View(model);
        }

目前还不清楚您的问题是什么-当前代码是否不起作用?什么是不工作的?(顺便说一句,你不应该每次都排序,然后再排序-这是低效的-当你有一个固定的值排列时,排序更有效)