LINQ选择问题

时间:2009-09-18 08:41:20

标签: linq

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的一个特定ChainStore

所以我只想在来自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)

2 个答案:

答案 0 :(得分:1)

ChainStoreItem是否具有Item属性?

在哪种情况下,它只是:

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

......还是我误解了?

答案 1 :(得分: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;

对不起,我还没有看到你想要实现的目标。据我所知,这只是创建连接并撤回相应细节的问题