【问题标题】:Linq to Entities : relationship * - *Linq 到实体:关系 * - *
【发布时间】:2010-02-24 08:20:47
【问题描述】:

我的 EF 架构上有一个关系 * - *(由带有 2 个键的中间表设计)。 当我想对每个进行过滤时(即:我希望所有细分市场都被一个函数过滤),我执行这个查询:

 var requete = from mkt in ent.MARKETSEGMENT_MKT
 where mkt.FUNCTION2_FUN.Where(fu => fu.FUN_ID == FunId).FirstOrDefault().FUN_ID == FunId

它正在工作,但它很丑。如何为过滤后的关系 * - * 制作一个好的查询?

谢谢

【问题讨论】:

标签: c# linq entity-framework linq-to-entities


【解决方案1】:

It's almost never correct to use join 在 LINQ to Entities(或 LINQ to SQL)中。

由于您没有指定实体集名称,我不得不猜测。我希望这是有道理的:

var requete = from fun in ent.FUNCTION
              where fun.FUN_ID == FunId
              from mkt in fun.MARKETSEGMENT_MKT
              select mkt;

这里的重点是FUNCTIONMARKETSEGMENT 之间有一个双向关联。使用它!

【讨论】:

  • 谢谢你,我现在更好地理解了这个概念:)
【解决方案2】:

使用 Join 方法。

来自 nerddinner.com 的这个小例子可能会有所帮助:

 var dinners = from dinner in FindUpcomingDinners()
        join i in db.NearestDinners(latitude, longitude)
        on dinner.DinnerID equals i.DinnerID
        select dinner;

【讨论】:

  • 我尝试加入但没有成功 var requete = from mkt in ent.MARKETSEGMENT_MKT join fun in ent.FUNCTION2_FUN on mkt.MKT_ID 等于 fun.MARKETSEGMENT_MKT。
猜你喜欢
  • 2015-03-24
  • 2012-09-27
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 2011-04-01
  • 2017-01-06
  • 2012-06-23
  • 2012-05-21
相关资源
最近更新 更多