我的EF Schema上有一个关系* - *(由带有2个键的中间表设计)。 当我想要对每个过滤器进行过滤时(即:我希望所有市场分段都由一个函数过滤),我执行此查询:
var requete = from mkt in ent.MARKETSEGMENT_MKT
where mkt.FUNCTION2_FUN.Where(fu => fu.FUN_ID == FunId).FirstOrDefault().FUN_ID == FunId
它有效,但很难看。如何为过滤关系制定一个好的查询* - *?
谢谢
答案 0 :(得分:0)
使用Join方法。
来自nerddinner.com的这个小例子可能有所帮助:
var dinners = from dinner in FindUpcomingDinners()
join i in db.NearestDinners(latitude, longitude)
on dinner.DinnerID equals i.DinnerID
select dinner;
答案 1 :(得分:0)
It's almost never correct to use join
。
由于您没有指定实体集名称,我必须猜测。我希望这是有道理的:
var requete = from fun in ent.FUNCTION
where fun.FUN_ID == FunId
from mkt in fun.MARKETSEGMENT_MKT
select mkt;
重要的一点是,FUNCTION
和MARKETSEGMENT
之间存在双向关联。使用它!