如何从此LINQ查询中获得不同的结果?

时间:2015-07-17 01:19:57

标签: linq entity-framework linq-to-sql

以下是我的ERD和样本数据。注意,我首先使用Entity Framework和Code来控制我的数据库。

enter image description here

对于名为假期的项目,请返回 UserBooleanAttributes 表中具有“true”值的所有 DISTINCT 用户 UserAttributes 表中定义的 青少年行。

这是我目前的尝试:

                var myQuery =
                    from P in context.Projects
                    join UA in context.UserAttributes on P.ProjectID equals UA.ProjectID
                    join UBA in context.UserBooleanAttributes on UA.UserAttributeID equals UBA.UserAttributeID
                    join U in context.Users on UBA.UserID equals U.UserID
                    where P.ProjectID == 1
                    where UBA.Value == true
                    where (UA.UserAttributeID == 1 || UA.UserAttributeID == 2)
                    select new { uba = U };

这将返回6个用户, e@acme.org 列出两次。是否有LINQ方式返回不同的值?我想我可以将其转换为列表然后过滤,但我宁愿让数据库完成工作。

如果可能的话,我宁愿避免使用lambda表达式。再一次,我希望数据库能够完成工作,而不必将代码写入union / intersect结果组。

0 个答案:

没有答案