从一组2个表中获取不同的项目

时间:2014-04-14 09:19:25

标签: linq-to-sql

表所有者:

Id :(主键) 名称

TableItems:

Id(主键) 名称: 描述: ReportingOwner:[带有所有者表的外键]

MappedItems:

Id :(主键) ItemId :(使用TableItems的foreignKey) OwnerId :(拥有所有者的外键)

我有3个表,我想获取TableItems中不在MappedItems中的特定所有者的项目列表。 我怎么能为它编写LinqToSql查询?

1 个答案:

答案 0 :(得分:0)

也许是这样的:

var owner="Owner";
var result= 
(
    from item in db.TableItems
    where
    !(
        from mapped in db.MappedItems
        join owner in db.tableOwner
            on mapped.OwnerId equals owner.Id
        where owner.Name==owner
        select mapped.ItemId
    ).Contains(item.Id)
    select item
).ToList();

其中db是linq数据上下文