I am using EFF with MySql database, where I have 3 different tables(say users, groceries, usersItems). and the situation is-

1. UsersItems has list of users involved in the groceries purchase.   

Column `UserInvolved`is a foreign key to `users.UserID` and   
Column `GroceryID` is a foreign key to `groceries.ItemID`.
2. groceries has the list of groceries been purchased.
3. users have the list of user details.(only **Name** is concerned about the table)

What I want to achieve is that,   

*A List of groceries is chosen frm the `groceries`* table.
Based on this list, I have to get the list of users involved in the purchase of these list from the table `usersItems`. Finally I have to get the names of these users from the `users` table and Show these names as a `;` semicolon separated.

Here's the association between the tables-
![enter image description here](https://i.stack.imgur.com/sjFMe.png)

and here's what I had tried to achieve this by Linq

```
var gList = entities.groceries.Select(item => item.ItemID);
var uInvolved = entities.usersitems.Where(item => gList.Contains(item.GroceryId)).Select(u => u.userInvolved);
var usrs = string.Join(";", entities.users.Where(us => uInvolved.Contains(us.UserID)).Select(name => name.FullName));

```

By using these linq, I am getting the result what I want, but as you can see this is not much optimized. Overall, I want to shorten/Optimize these queries and I am very much confused, where I am getting wrong.
Also, I had tried to achieve this result as a `View` directly from the database, but still I couldn't.