2013-12-03 2 views
1

Я не получаю код отображения, всегда представляя ту же ошибку: , когда я загружаю приложение для создания таблиц, отображается следующая ошибкаFluentNhibernate - пытался добавить много-к-одному «Документ», когда уже добавлено

Tried to add many-to-one 'Document' when already added.

мой код:

public class DocTypes 
     { 
      public virtual Int16 Id { get; private set; } 
      public virtual IList<Documents> Documents { get; set; }   
     } 


    public class Documents 
     { 
      public virtual Int64 Id { get; private set; } 
      public virtual DocTypes DocType { get; set; } 
      public virtual IList<Files> Files { get; set; } 
      public virtual IList<Fields> Fields { get; set; }    
     } 
public class Fields 
    { 

     public virtual Int32 Id { get; private set; } 
     public virtual Documents Document { get; set; }  
    } 

Мои отображения:

public DocTypeMap() 
     { 
      Table("TbDocType"); 
      Id(x => x.Id) 
       .Column("Num_Id");    
      HasMany(x => x.Documents) 
       .KeyColumn("Num_DocType_Id") 
       .Inverse() 
       .Cascade.All(); 
      References(x => x.Cabinet, "Num_Cabinets_Id").Cascade.None(); 
     } 
public DocumentsMap() 
     { 
      Table("TbDocuments"); 
      Id(x => x.Id) 
      .Column("Num_Id"); 

      HasMany(x => x.Files) 
      .KeyColumn("Num_Document_Id") 
      .Inverse() 
      .Cascade.All(); 
      HasMany(x => x.Fields) 
      .KeyColumn("Num_Document_Id") 
      .Inverse() 
      .KeyNullable() 
      .Cascade.All(); 
      References(x => x.DocType, "Num_DocType_Id").Cascade.None(); 

     } 

    public FieldsMap() 
     { 
      Table("TbFields"); 
      Id(x => x.Id) 
       .Column("Num_Id"); 
      References(x => x.Document, "Num_Document_Id") 
       .Cascade.None(); 
      References(x => x.Document, "Num_BarCode_Id") 
       .Cascade.None(); 
     } 

Где ошибка?

Thank you.

ответ

6

Вы, кажется, дважды ссылаетесь на Document на свой FieldsMap. Здесь:

References(x => x.Document, "Num_Document_Id") 
    .Cascade.None(); 
References(x => x.Document, "Num_BarCode_Id") 
    .Cascade.None(); 
+0

Уверен, что это было. Я не мог видеть, я так много времени, что мой мозг закрывается. благодаря – msantiago

Смежные вопросы