2009-09-18 99 views
0
from item in db.Items 
join ci in db.ChainStoreItems on item.ItemId equals ci.ItemId 
where ci.ChainStoreId == 2 
select item 

問題如下:Item有一套ChainStoreItems。我想寫一個查詢返回一個Item,它沒有一套ChainStoreItems它應該只保留一個特定的ChainStoreItem爲所選ChainStoreLINQ選擇問題

所以我只是想確實有這些來自ChainStoreItem項目附加列然而,這是可能的

這是一個SQL語句,它會做什麼,我想

SELECT   
    ChainStoreItems.ChainStoreId, ChainStoreItems.ItemId, 
    Item.ProcStatus, Item.Del, Item.LastUpdate, 
    ChainStoreItems.AllowToReturn, 
    ChainStoreItems.AllowToSale 
FROM 
    ChainStoreItems 
INNER JOIN 
    Item ON ChainStoreItems.ItemId = Item.ItemId 
WHERE 
    (ChainStoreItems.ChainStoreId = 140) 
+1

好吧所以一個orderitem有一個項目和一個項目有很多chainstoreitems?你想查詢一個訂單項目和它的相關項目詳細信息? – Goober

+0

neraly一個orderitem有一個項目和一個項目有很多chainstoreitems,但我有一個特殊的連鎖店,所以我並不intlest在所有chainstoreitems只在一個特定的一個 – Markus

+1

我仍然有點困惑,你想做什麼。我得到的印象是,你只是想搜索一個特定的項目?如果是這樣,那麼你的搜索條件是什麼?即你正在通過ID等搜索?你爲什麼不加入orderitem和物品表,並做一個where子句來找到具體物品? – Goober

回答

1

這是你在做什麼!?

var result = from item in db.Items 
        join ci in db.ChainStoreItems 
        on item.ItemId equals ci.ItemId 
        where ci.ChainStoreId == 2      
        into itemci // note grouping   
        select new 
        { 
          //Whatever you want in here 
        }; 
     return result; 

對不起,我還不是很清楚你到底想要達到什麼目的。據我所知,這只是創建一個加入和拉回相應的細節

+0

感謝您的幫助 – Markus

+0

那是你以後?!不客氣! – Goober

1

確實ChainStoreItem有項目屬性?

在這種情況下,它只是:

from csi in ChainStoreItems 
where csi.ChainStoreId == 140 
select new { ChainStoreItem = csi, Item = csi.Item } 

...還是我誤解?