【发布时间】:2014-05-05 14:21:55
【问题描述】:
我想选择此表中的所有项目:
_categoryRepository.Table :
Id Name
1 Birthday
2 Christmas
4 Desktops
6 Notebooks
7 Accessories
9 Cell phones
但是,. .我想从 _categoryRepository 中排除与此表中的“EventID”匹配的任何“Id”:
_MemberEventRepository.Table
Id MemID EventID
1 1 1
3 1 2
5 1 7
7 4 1
8 4 4
与 MemId 匹配。所以对于 MemID '1',结果将是:
4 Desktops
6 Notebooks
9 Cell phones
我不知道如何在 LINQ 中执行此操作。
var eventsList = from c in _categoryRepository.Table
join m in _MemberEventRepository.Table on ?????????????
where (m.MemID == currentCustomer)
orderby c.Name
select new MyActiveEvents { Id = c.Id, Name = c.Name };
这相当于 SQL:
SELECT [Id] ,[Name]
FROM [Category]
WHERE Id NOT IN
(SELECT EventID FROM [Category] c INNER JOIN [MemberEvent] m ON m.[EventID] = c.Id)
这在 LINQ 中可行吗?
【问题讨论】:
-
您使用的是
LINQ-to-sql还是LINQ-to-entities?看起来更像LINQ-to-sql,但在LINQ-to-entites的情况下:是否定义了实体关系,例如Category是否有Events导航属性? -
"类别是否有事件导航属性?"不。不能同时使用 LINQ-to-sql 或 LINQ-to-entities 吗?
-
理论上它们可以并行使用,但我对
LINQ-to-sql不是很熟悉,因为我通常只使用LINQ-to-entities...
标签: c# .net linq asp.net-mvc-4 linq-to-sql