C#OrderBy List by Associated Table

时间:2014-08-23 00:21:25

标签: c# sql-order-by

在C#中(对于ASP.net MVC应用程序)我希望对我的数据库中的数据执行OrderBy函数,但是我想将它基于关联的表值。这是一个简化的例子:

我的主要表格:

public class Person
{
  public int Id { get; set; }
  public int ContactId { get; set; }
}

以及相关的联系人表

public class Contact
{
  public int Id { get; set; }
  public string FirstName{ get; set; }
  public string LastName { get; set; }
}

目前我可以获得所有Person条目的列表,如下所示:

sortList = db.People.ToList();

我对主表中的某个东西排序sortList没有问题,比如说ContactId,但我想按关联表排序。

我想通过关联的姓氏(来自Contact表)对sortList进行排序,其中Person.ContactId = Contact.Id。我很可能想使用OrderBy函数。我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

这很有效,我不确定它是否是最有效的方式:

var personList = from i in db.Person
                 join o in db.Contacts
                 on i.ContactId equals o.Id
                 orderby o.LastName
                 select i;

List<Person> peopleList = personList.ToList();