2010-11-29 30 views
17

¿Es posible guardar el modelo que tiene una dependencia circular?dependencia circular en el marco de entidad

I desnormalizado mi base de datos:

 

User 
-------- 
UserId 
UserName 
LastOrder - fk to last order 


Order 
------- 
OrderId 
OrderName 
UserId 
OrderDate 


¿Es posible salvar algo como esto usando ADO.NET Entity Framework?

¿Qué debería cambiar para que funcione la causa del error ahora tengo:

Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values.

+0

es LastOrder un OrderId ?? – stack72

+0

¿No es el último pedido el primer pedido que coincide con el ID de usuario ordenado por tiempo descendiente? Creo que podría prescindir del FK si tuviera un índice de identificación de usuario y fecha de pedido. – tvanfosson

+0

Es simplificado, en mi aplicación real quiero exactamente esa referencia, ¿es posible lograrlo? – gruber

Respuesta

48

que tenían una mesa que tenía una relación a sí mismo y que estaba recibiendo el mismo error. Resulta que la clave externa tiene que ser anulable. Same table relationship in Entity Framework Espero que esto le ahorre a alguien más tiempo de lo que perdí.

+0

Me ahorra mucho tiempo también. ¡Gracias! ¿Alguien sabe por qué sucede esto? ¿Por qué la clave externa debe ser nulable? –

+2

@ Adam - Supongo que es para permitirle insertar la primera fila en la tabla. (no habrá otros registros para vincular) – tkerwood

+0

Gracias por la respuesta. Tuve que cambiar mi relación de 1 a muchos a 0..1 a muchos para evitar un error "La multiplicidad no es válida" después de configurar mi clave externa como anulable, pero ahora todo está funcionando sin problemas. –