Linq to Entities EF4

我有一个包含namedescusers集合(属于该组)的组域模型

我正在尝试获取特定用户所属的所有组。 这是我的LinQ声明:

 var results = from p in AuthorizationService.UnitOfWork.Groups.FindAll() where (p.Users != null && p.Users.Select(u => u.Id).Contains(CurrentUser.Id)) select p.Name; 

我尝试执行查询时收到以下错误

 Cannot compare elements of type 'System.Collections.Generic.ICollection`1'. Only primitive types (such as Int32, String, and Guid) and entity types are supported. 

任何帮助表示赞赏。谢谢!

删除Users对象的null测试,无论如何它是延迟加载的,你的用户是虚拟的吗? 如果是,它是延迟加载的,那么可以删除null测试

 var results = from p in AuthorizationService.UnitOfWork.Groups.FindAll() where p.Users.Any(u => u.Id == CurrentUser.Id) select p.Name; 

你不能走相反的方向吗?

 var results = AuthorizationService.UnitOfWork.Users.Include("Groups").First(u => u.ID == CurrentUser.Id).Select(u => u.Groups); 

希望这可以帮助。