开发者

Linq to Entities : relationship * - *

开发者 https://www.devze.com 2022-12-20 22:16 出处:网络
I have on my EF Schema a relationship * - * (designed by a middle table with 2 keys). When I want filter on each (ie : I want all market segment filtered by one function), I execute this query :

I have on my EF Schema a relationship * - * (designed by a middle table with 2 keys). When I want filter on each (ie : I want all market segment filtered by one function), I execute this query :

 var requete = from mkt in ent.MARKETSEGMENT_MKT
 where mkt.FUNCTION2_FUN.Where(fu =&开发者_如何学JAVAgt; fu.FUN_ID == FunId).FirstOrDefault().FUN_ID == FunId

It's working, but it's ugly. How to craft a good query for filtered relationship * - * ?

Thank you


It's almost never correct to use join in LINQ to Entities (or LINQ to SQL).

Since you don't specify your entity set names, I have to guess. I hope this makes sense:

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

The important point here is that you have a two way association between FUNCTION and MARKETSEGMENT. Use it!


use the Join method.

this tiny example from nerddinner.com might help:

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

精彩评论

暂无评论...
验证码 换一张
取 消