¿Por qué no puedo tener una restricción referencial con una asociación de uno a cero a uno?

Estoy usando el modelo de entidad framework 4.3 primero y no puedo entender por qué no puedo tener una asociación de uno a cero junto con una restricción de referencia.

Tengo dos problemas principales. No puedo forzar la integridad referencial (sin intervención manual) y mi carga diferida no parece funcionar... todas mis 1 a muchas asociaciones están bien.

Básicamente tengo dos tablas, Préstamos y Contratos. La tabla Contratos tiene un campo escalar para LoanId.

Hasta que un préstamo es Subido, no tiene datos de contrato y opté por no colocar todo en la misma tabla debido al tamaño de los datos de contrato. Es decir. No quiero que se recuperen los datos del contrato de la base de datos a menos que sea realmente necesario.

He buscado y parece que no puedo encontrar ningún modelo de primera información que responda claramente a mis preguntas. Cualquier información que pueda ayudarme a entender y aclarar mi problema sería muy apreciada.

Saludos Craig

preguntado el 02 de julio de 12 a las 04:07

1 Respuestas

La conjetura LoanId El campo no es una clave principal en la tabla de contratos. En tal caso, no puede tener tal relación uno a uno porque EF no lo admite. cuando creas LoanId campo en Contracts table, la única forma de forzar una relación uno a uno es agregar una restricción única en ese campo. EF actualmente no admite claves únicas (excepto claves principales), por lo que la única forma de crear una relación uno a uno es crear una relación entre claves principales (Loan.Id <-> Contract.Id). Si no sigue esto, obtendrá un error en el diseñador.

Respondido 02 Jul 12, 11:07

Ahhh... Ahora entiendo el error. Esta pequeña pieza de información resuelve gran parte de mi confusión. Estoy un poco decepcionado de no poder estructurar mi base de datos subyacente de la forma en que siempre lo he hecho, pero lo superaré. ¡Muchas gracias! - Craig

@Kraeg Si esto respondió a su pregunta, haga clic en la marca de verificación debajo de las flechas arriba/abajo, ¡por favor! - ErikE

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.