Tengo una restricción de clave externa entre las tablas Sesiones y Usuarios. Específicamente, Sessions.UID = Users.ID. A veces, quiero que Sessions.UID sea nulo. ¿Se puede permitir esto? Cada vez que trato de hacer esto, obtengo una Violación de restricción FK.SQL Server 2005: Restricción de clave externa anulable
Específicamente, estoy insertando una fila en Sesiones a través de LINQ. Configuro la Session.User = null; y me sale este error:
An attempt was made to remove a relationship between a User and a Session. However, one of the relationship's foreign keys (Session.UID) cannot be set to null.
Sin embargo, cuando se quita la línea que anula la propiedad del usuario, me sale este error en mi línea SubmitChanges:
Value cannot be null. Parameter name: cons
Ninguno de mis tablas tienen un campo llamado 'contras ', ni está en mi archivo DataContext.designer.cs de 5,500 líneas, ni está en el QuickWatch para ninguno de los objetos relacionados, así que no tengo idea de qué' contras 'es.
En la base de datos, Session.UID es un campo nullable int y User.ID es un int no nulo. Quiero grabar sesiones que pueden o no tener un UID, y preferiría hacerlo sin deshabilitar la restricción en esa relación FK. ¿Hay alguna forma de hacer esto?
Derecha adk. +1 La definición de una clave externa es que es un valor en una tabla que debe coincidir con un valor de clave primaria en otra tabla o ser nulo. – Alan
Lógicamente, tiene sentido, ¿verdad? Lo leí así: SI intento hacer referencia a un registro en otra tabla, asegúrese de que la referencia sea válida. Si no lo hago (NULO), a quién le importa. –