cuando cargo una clase de tareas, la propiedad de documentos es siempre nula, a pesar de ser datos de la db.nhibernate fluidez hasOne WithForeignKey no trabajar
claseTarea:
public class Task
{
public virtual Document Document { get; set; }
Grupo de Cartografía anulación para AutoPersistenceModel:
public void Override(AutoMap<Task> mapping)
{
mapping.HasOne(x => x.Document)
.WithForeignKey("Task_Id");
Como se puede ver forman lo NHProf dice es que se está ejecutando, la condición de unión está mal, el imposible de WithForeignKey parecen tomar efecto. De hecho, puedo escribir cualquier cadena en el código anterior y no hace ninguna diferencia.
FROM [Task] this_
left outer join [Document] document2_
on this_.Id = document2_.Id
Debería ser:
FROM [Task] this_
left outer join [Document] document2_
on this_.Id = document2_.Task_Id
Si yo hackearé los datos en la base de datos de manera que los identificadores coinciden, entonces se cargan los datos, pero es evidente que esto no es correcto - pero al menos demuestra que las cargas datos.
Editar: hurgar en la fuente NHib fluidez para encontrar el código XML produce esto:
<one-to-one foreign-key="Task_Id" cascade="all" name="Document" class="MyProject.Document, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
Editar: aquí está el esquema:
CREATE TABLE [dbo].[Document](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Task_Id] [int] NOT NULL,
CREATE TABLE [dbo].[Task](
[Id] [int] IDENTITY(1,1) NOT NULL,
Alguien tiene alguna idea?
Gracias
Andrew
Un posibilidad estoy de acuerdo, pero ¿por qué Task_Id no se procesa en ningún lado? (Aunque su mal y que, por tanto, provocar una excepción - pero, duerma) –
que hace el trabajo, sin embargo, significa que necesito una propiedad task_id el documento, que preferiría no tener. Funciona por ahora aunque gracias –