使用LINQ to SQL选择人员及其所有专业

时间:2016-01-13 16:58:41

标签: c# linq

我有一个指向Persons表的主键列表。

List<string> personKeys;

我还有一张桌子可以保持每个人的特色,一个人可能有很多专业,可能有一个或根本没有专业。 因此该表(PersonSpecialties)将具有类似

的示例模式
PersonSpecialty_K, Person_K, SpecialtyName

我想传递那个人凯斯列表并查询数据库并获取每个人及其专业的列表或字典。 我在编写此查询时遇到问题。

var personAndSpecialties = (from ps in this.context.PersonSpecialties 
    where personKeys.Contains(ps.Person_K) select WHAT? )

3 个答案:

答案 0 :(得分:2)

您是否尝试使用group by

var personAndSpecialties = (from ps in this.context.PersonSpecialties 
                               where personeys.Contains(ps.Person_K)
                               group ps.SpecialtyName by ps.Person_K)

我现在没有SQL可以测试,但这可能有用。

答案 1 :(得分:1)

我认为你想要的是:

class City < ActiveRecord::Base
  belongs_to :state
  validates :state_id, presence: true
end

答案 2 :(得分:1)

您可以创建另一个名为PersonSpecialtyViewModel

的类
public class PersonSpecialtyViewModel
{
    public Person        Person         {get; set;}
    public SpecialtyName SpecialtyName  {get; set;}
}

你的查询可能是那样的

var personAndSpecialties = (from ps in this.context.PersonSpecialties 
where personKeys.Contains(ps.Person_K) select new  PersonSpecialtyViewModel() { Person = ps.Person, SpecialtyName = ps.SpecialtyName }).ToList();