2011-09-27 112 views
1

我在數據庫中有兩個表,其中包含所有可能的雜貨價值清單。例如LINQ加入2個表

Milk 
Cheese 
Bread 
Meat 

第二個表包含從雜貨店選擇的項目。例如:

Milk 
Cheese 

我想是有牛奶和奶酪中選擇所有可能的雜貨的結果。

任何想法?

以下是表格。

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

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

因此所產生的實體將成爲從GroceryList的所有項目,如果他們在ShoppingList存在,那麼選擇標記爲真: ShoppingList.ID Grocerylists.Description 選擇

+1

請發表您的表(列) –

+2

你的問題有點不清楚...你是什麼意思?「我想要一個結果,所有可能的食品都選擇了牛奶和奶酪。」?你能向我們展示一些樣本輸出嗎?你只是想要一個列出所有可能的雜貨的屬性,說明該項目是否被選中? –

回答

0

基於理解,你可以做這樣的事情

//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; 

,或者如果你想獲得

關於加入的信息比這個圖片將幫助你

內加入 enter image description here

外部聯接 enter image description here

試圖理解並可以幫助你解決你的查詢

+0

感謝這使我朝着正確的方向前進。我很感激。 – timthacker63

0

編輯:聽起來仍然像你想要做一個左連接。你的情況:

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. 
        }; 

更多的例子:

Left Join on multiple tables in Linq to SQL