How do you do Multiple Inner Joins in Linq to Entities?

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?

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?

1 wow..good point – user161433 Sep 18 '09 at 18:56 2 @Craig - I wish I'd understood what I was looking at here a couple hours ago. What I missed was the "from order in customer. Order" - I was doing the equivalent to "from order in db.

Orders", which is totally different. Thanks for this, though. – chris Jan 28 '10 at 16:03 1 This generates cross joins in the query... – dudeNumber4 Aug 11 '10 at 16:50.

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?

While this does indeed work, I believe it's better form to use relationships instead of joins in the specific case of L2E. – Craig Stuntz Sep 18 '09 at 13:27.

NET Language-Integrated Query (LINQ) query provider in Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online uses standard LINQ syntax. The first step in creating a LINQ query is to identify the relevant entity types and the relationships between them. You can then specify the data source and the other query parameters.

The from clause is used to return a single “root” entity. The query provider can only return entities of a single entity type. The orderby and select clauses must reference this root entity.

You can use join clauses to add entities with a relationship to the “root” entity.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions