nhibernate hasmany cuando no se usa una clave externa
-
05-07-2019 - |
Pregunta
Digamos que tengo una tabla de solicitud, que tiene el siguiente aspecto:
RequestId INT
ReferenceNumber VARCHAR
Cada solicitud se registra en una tabla requestlog. No hay claves foráneas entre las tablas:
RequestLogId INT
ReferenceNumber VARCHAR
Content VARCHAR
El registro de solicitudes contiene el contenido de la solicitud y este contenido debe almacenarse durante un período de tiempo. La solicitud se puede eliminar, pero el registro solo se puede eliminar después de un período de tiempo.
¿Cómo puedo asignar mi objeto de solicitud para que pueda contener una lista de listas de solicitudes, en función del número de referencia?
He intentado esto:
Table("InsuranceRequest");
Id(i => i.Id).Column("InsuranceRequestId");
Map(i => i.ReferenceNumber);
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();
Aunque no funciona. Esta asignación intenta asignar el número de referencia al RequestLogId del requestlog. ¿Hay alguna forma de especificar que la columna de unión debe ser el número de referencia del registro de seguro?
Solución
nada impide a los muchos a muchos en la estructura de su tabla .. Recomiendo cambiar la estructura y hacer que sean claves externas, y estoy seguro de que la asignación de muchos a muchos funcionará para usted si la asignación no funciona después del cambio de estructura.
otro consejo para ti: tomar una base de datos vacía y tratar de exponer el esquema .. de lo que será capaz de ver cómo nhibernate cree que debería ser la estructura