How do you do Multiple Inner Joins in Linq to Entities

后端 未结 2 1230
萌比男神i
萌比男神i 2020-12-09 22:45

I have already searched through SO and could not fins a workable solution for this. I am just trying to figure what is the syntax for multiple inner joins in Linq to Entitie

相关标签:
2条回答
  • 2020-12-09 23:32

    Jon's answer will work, but IMHO using join in LINQ to Entities is usually wrong, because it duplicates code in your model. I can rewrite Jon's query in a much simpler way in L2E:

    var query = from customer in db.Customers
                from order in customer.Orders
                from product in order.Products
                from info in product.Info
                select new
                {
                    customer.Name, 
                    info.BriefDescription
                }
    

    That's about 50% of the typing and 0% of the duplicated code. Consider that your relationships have already been defined in your DB and in your model. Do you really want to duplicate them again in every query you write, and break your queries when you refactor your model?

    0 讨论(0)
  • 2020-12-09 23:36

    Well, I don't know LINQ to Entities particularly, but the normal LINQ syntax would be:

    var query = from customer in db.Customers
                join order in db.Orders on customer.ID equals order.ID
                join product in db.Products on order.ProductID equals product.ID
                join info in db.Info on product.InfoID equals info.ID
                select new { customer.Name, info.BriefDescription };
    

    (i.e. just several join clauses).

    Now I suspect that you've already tried that - if so, what went wrong?

    0 讨论(0)
提交回复
热议问题