Linq to sql 从一组2个表中获取distinct项 桌面所有者:

Linq to sql 从一组2个表中获取distinct项 桌面所有者:,linq-to-sql,Linq To Sql,Id:主键 名字 表格项目: Id主键 姓名: 说明: ReportingOwner:[具有所有者表的外键 地图项目: Id:主键 ItemId:带有TableItems的foreignKey OwnerId:具有所有者的外键 我有3个表,我想获取TableItems中的项目列表,这些项目不在特定所有者的MappeItems中。 如何为它编写LinqToSql查询?可能是这样的: var owner="Owner"; var result= ( from item in db.Tabl

Id:主键 名字

表格项目: Id主键 姓名: 说明: ReportingOwner:[具有所有者表的外键

地图项目: Id:主键 ItemId:带有TableItems的foreignKey OwnerId:具有所有者的外键

我有3个表,我想获取TableItems中的项目列表,这些项目不在特定所有者的MappeItems中。
如何为它编写LinqToSql查询?

可能是这样的:

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数据上下文