visual una studio llamar hacer desde datos consultas consulta como codigo vb.net entity-framework ado.net many-to-many

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.