Linq在实体列表属性上的位置

时间:2014-01-23 15:58:11

标签: c# linq entity-framework nhibernate

这是我的情景。 我有三个实体:经销商,汽车,发动机。 它们是相互关联的,以便经销商可以拥有一个或多个具有不同发动机的车型。

public class Dealer
{
  public virtual int id{get;set;}
  public virtual string name{get;set;}
  public virtual IList<Car> Cars{get;set;}
}

public class Car 
{
  public virtual int id{get;set;}
  public virtual string name{get;set;}
  public virtual Engine engine{get;set;}
}

public class Engine
{
  public virtual int id{get;set;}
  public virtual string description{get;set;}
  public virtual int kw{get;set;}
}

示例:我需要找到所有拥有98kw发动机的经销商。

我试过(我知道这是错的......):

var out = Session.Linq<Dealer>().Where("Cars.Engine.Kw == 98").ToList();

我能以哪种方式得到我需要的东西?

1 个答案:

答案 0 :(得分:2)

基本上,

var dealers = Session.Linq<Dealer>().Where(d => d.Cars.Any(c => c.Engine.Kw == 98 ));

但当汽车没有发动机时,这当然会爆炸。