开发者

LINQ Joining 2 tables

I have two tables in the database one contains a list of all possible grocery values. For Example

Milk
Cheese
Bread
Meat

the second table contains Items from Grocery that are selected. For Example:

Milk
Cheese

I want开发者_如何学编程 a result that has all possible grocery items with Milk and Cheese selected.

Any ideas?

Here are the tables.

The GroceryList Table:
ID INT PK
Description Varchar(50)

The ShoppingList Table:
ID INT PK
GroceryListID int FK to GroceryList.ID

So the resulting Entity would be all items from GroceryList and if they exist in ShoppingList then selected is marked as true: ShoppingList.ID Grocerylists.Description Selected


Based on understanding you can do something like this

//first get the list of product which satisfy your condition

    var ids = (from p ShoppingList 
              select p.GroceryListID ).ToList();

//second filter the Grocery products by using contains

    var myProducts = from p in GroceryList 
                     where ids.Contains(p.ID)
                     Select p;

or

if you want to get info about join than this image would help you

Inner Join

LINQ Joining 2 tables

Outer Join

LINQ Joining 2 tables

Try to understand and which may help you to resolve your query


Edit: Still sounds like you want to do a left join. In your case:

var LINQResult = from g in Datacontext.GroceryList
                 from s in DataContext.ShoppingList
                     .Where(c=>c.ID == g.ID)
                     .DefaultIfEmpty()
                 select new {
                    g.ID,
                    g.Description,
                    s.ID   // Will be null if not selected.
                  };

For more examples:

Left Join on multiple tables in Linq to SQL

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜