C# Linq在实体列表属性上的位置
这是我的设想。 我有三个实体:经销商、汽车、发动机。 它们相互关联,以便经销商可以拥有一个或多个具有不同发动机的车型C# Linq在实体列表属性上的位置,c#,linq,entity-framework,nhibernate,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{
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;}
}
公共类经销商
{
公共虚拟整数id{get;set;}
公共虚拟字符串名称{get;set;}
公共虚拟IList车{get;set;}
}
公车
{
公共虚拟整数id{get;set;}
公共虚拟字符串名称{get;set;}
公共虚拟引擎引擎{get;set;}
}
公共级引擎
{
公共虚拟整数id{get;set;}
公共虚拟字符串描述{get;set;}
公共虚拟整数kw{get;set;}
}
示例:我需要找到所有拥有98kw发动机汽车的经销商
我试过(我知道这是错误的…):
var out=Session.Linq()。其中(“Cars.Engine.Kw==98”).ToList();
我可以通过哪种方式得到我需要的东西?基本上
var dealers = Session.Linq<Dealer>().Where(d => d.Cars.Any(c => c.Engine.Kw == 98 ));
var-derals=Session.Linq()。其中(d=>d.Cars.Any(c=>c.Engine.Kw==98));
但当汽车没有发动机时,这当然会爆炸 和所有者==经销商??请在邮寄前检查您的代码。最好先编译。对不起,先生。。修正了…嘿@Henk,如果下次你能在回答中多加一点解释或叙述,那就太好了!
var dealers = Session.Linq<Dealer>().Where(d => d.Cars.Any(c => c.Engine.Kw == 98 ));