Tengo entidades Group
y User
.
entidad Group
tiene Users
propiedad que es una lista de usuarios.
El usuario tiene una propiedad llamada IsEnabled
.Linq To Entities - cómo filtrar entidades hijo
Quiero escribir una consulta de linq que devuelve una lista de Group
s, que solo consta de User
s cuya IsEnabled
es verdadera.
así por ejemplo, para los datos, como a continuación
AllGroups
Grupo A
usuario 1 (IsEnabled = true)
usuario 2 (IsEnabled = true)
usuario 3 (IsEnabled = false)
Grupo B
usuario 4 (IsEnabled = true)
usuario 5 (IsEnabled = false)
Usuario 6 (IsEnabled = false)
quiero conseguir
FilteredGroups
Grupo A
usuario 1 (IsEnabled = true)
usuario 2 (IsEnabled = true)
Grupo B
Usuario 4 (IsEnabled = verdadero)
Probé la siguiente consulta, pero Visual Studio me dice que
[no se pueden asignar propiedad o indizador de los usuarios a - que es de sólo lectura]
FilteredGroups = AllGroups.Select(g => new Group()
{
ID = g.ID,
Name = g.Name,
...
Users = g.Users.Where(u => u.IsInactive == false)
});
gracias por su ayuda!
¿estás usando EF4? Si es así, ¿está usando POCO? ¿Cómo se declara 'Group.Users'? – RPM1984
Puede lograr esto fácilmente con Include filtrado. ¡Vote por la característica [aquí] (https://entityframework.codeplex.com/workitem/47)! – Chris