我有一个linq to sql数据库.非常简化,我们有3个表,项目和用户.有一个名为User_Projects的连接表将它们连接在一起.
我已经有了一种获取IEnumberable<Project>给定用户的工作方法.
from up in User_Projects
select up.Project;
Run Code Online (Sandbox Code Playgroud)
现在我想获得用户没有参与的项目.我认为IEnumerable的except方法在这里会很不错:
return db.Projects.Except(GetProjects());
Run Code Online (Sandbox Code Playgroud)
编译但是我得到一个运行时错误:"除了Contains()运算符之外,本地序列不能用于查询运算符的LINQ to SQL实现."
有没有办法解决这个问题?
一些观点,但没有答案:p
我试过这个:
IEnumerable<Project> allProjects = db.Projects;
IEnumerable<Project> userProjects = GetProjects();
return allProjects.Except(GetProjects());
Run Code Online (Sandbox Code Playgroud)
我知道它与原始语句基本相同 - 但现在我没有得到运行时错误.不幸的是,它并没有真正做除了部分,只是因为某些原因返回所有项目