Tengo un modelo, Docs, con una columna guid, author_id, que debe hacer referencia a un MembershipUser.ASP.NET MVC: relación entre modelos y MembershipUsers
Estoy usando el MembershipProvider estándar (solo cambié el nombre de db), y por supuesto no tengo un modelo para MembershipUsers.
Puedo definir fácilmente algunos métodos en la clase Docs para obtener MembershipUser para un Doc y todos los Documentos para un MembershipUser, pero algunas cosas son complicadas (enumerar usuarios, mostrar cuántos documentos tiene cada usuario); además, siento que estoy usando MVC de una manera extraña: me parece que sería más fácil si tuviera un modelo MembershipUsers ...
¿Cómo puedo implementar esta relación? ¿Debo implementar un modelo para MembershipUsers?
gracias
actualización: que se dan cuenta de que no estaba claro en absoluto.
Digamos que quiero enumerar todos mis usuarios y sus documentos. Una forma de hacer esto es:
ViewModel model = new ViewModel()
{
Users = from MembershipUser user in Membership.GetAllUsers(page, pagesize, out totalusers)
select new UserWithDocs
{
User = user,
Docs = context.Docs.Where(c => c.author_id == (Guid) user.ProviderUserKey)
},
UsersCount = totalusers
};
Esto funciona, pero genera una consulta independiente para cada usuario.
Pude obtener una serie de guías de usuario y luego consultar los Documentos where author_id IN list_of_guids
, pero luego debía asociar manualmente cada documento a su autor.
¿Cuál es la mejor solución?
¿Estás tratando de cargar todos los usuarios y todos los documentos? Esto suena como una gran cantidad de datos. ¿Por qué no separar sus puntos de vista en una lista de usuarios y luego profundizar en una lista de documentos para el usuario seleccionado? Como ha señalado, si desea hacer esto en dos consultas, deberá asociar manualmente los documentos a los usuarios que utilizan un bucle foreach. – Junto