vb.net - studio - ¿Cómo se inserta una entidad para una relación de muchos a muchos?(marco de la entidad)
consulta sql en visual basic (2)
Si tengo una relación de varios a varios entre Usuarios y Roles y tengo una instancia de una entidad de usuario y varios Id. De función, puedo insertar una relación entre los dos tipos de entidades sin tener ningún otro Rol de datos y sin hacer una selección en el Roles primero?
Actualizar:
Puede que no haya sido lo suficientemente claro. No tengo una instancia de una función, solo la id. De función. ¿Es posible crear la relación entre el usuario y el rol sin llenar primero un objeto Rol de la base de datos?
Sí, si tiene los ID y necesita relacionarlos
Deberías poder hacer esto (pseudo código)
// how you get this doesn''t matter so long as it is in the Context
User user = ...;
Role role = new Role {Id = 2};
// role 2 is in unchanged state
ctx.AttachTo("Roles", role);
// role 2 is unchanged + added relationship between user and role 2
user.Roles.Add(role);
ctx.SaveChanges();
La clave aquí es que AttachTo
coloca una entidad en el administrador de ObjectState en el estado sin cambios. Siempre que no necesite modificar esa entidad, y solo la use para la construcción de relaciones, ni siquiera necesita conocer todos los valores de las propiedades, la PK es suficiente.
Una vez que lo tiene unido, puede construir la relación.
Espero que esto ayude
Saludos Alex
Si no está usando databinding, seguro. Muchos a muchos se mapean como una lista de referencias entre sí. User.Roles.Add (Rol ...) debería estar bien.