HasManyToMany e l'eliminazione Inverse Cascate AllDeleteOrphan

8 views
Skip to first unread message

Antonio Feliziani

unread,
Oct 22, 2011, 10:19:52 AM10/22/11
to nh...@googlegroups.com
Salve a tutti ho un dominio che per semplicità di riassumo in Azienda ,Ruoli e Figure
il mapping fluente è fatto in questo modo 

Dove un'azienda può avere diverse persone che svolgono uno o più ruoli contemporaneamente e nel caso vengano cancellati i FigureToFigureRule (relazione tra azienda ruolo e figura, devono rimanere i ruoli orfani e le figure orfane.

Ma se cancello una figura deve eliminarmi i FigureToFigureRule che la riportano


ora ho fatto il mapping nel seguente modo:

  public class CompanyMap : SubclassMap<Company>
  {
    public CompanyMap()
    {
      Map(x => x.Category);
      Map(x => x.Cciaa);
      Map(x => x.Logo);
      Map(x => x.Note, "Notes");
      Map(x => x.Specialties);
      References(x => x.Phone, "Phone_id").Cascade.All().Not.LazyLoad();
      References(x => x.Mail, "Mail_id").Cascade.All().Not.LazyLoad();
      References(x => x.Address, "Address_id").Cascade.All().Not.LazyLoad();
      HasMany(x => x.EmployeesList).Cascade.All().Not.LazyLoad();
 
      HasManyToMany<FigureToFigureRule>(x => x.FigureList).Table("FigureToFigureRuleToCompany").ChildKeyColumn("FigureToFigureRule_id")
                    .ParentKeyColumn("Company_id").Cascade.All().Not.LazyLoad();
 
      HasManyToMany<Equipment>(x => x.EquipmentList).Table("EquipmentToCompany").ChildKeyColumn("Equipment_id")
                    .ParentKeyColumn("Company_id").Cascade.All().Not.LazyLoad();
    }
  }
 
  public class FigureToFigureRuleMap : ClassMap<FigureToFigureRule>
  {
    public FigureToFigureRuleMap()
    {
      Id(x => x.GuidId).GeneratedBy.UuidHex("N");
      References(x => x.User).Cascade.All().Not.LazyLoad();
      References(x => x.UserRule).Cascade.All().Not.LazyLoad();
      HasManyToMany<Company>(x => x.Companys).Table("FigureToFigureRuleToCompany").ChildKeyColumn("Company_id")
              .ParentKeyColumn("FigureToFigureRule_id").Not.LazyLoad().Inverse().Cascade.All();
    }
  }
 
  public class FigureMap : SubclassMap<Figure>
  {
    public FigureMap()
    {
      Table("Figures");
    }
  }

Figure è figlio di Person.. che ha poche cose e semplici (indirizzo nome cognome ecc.. )

Attualmente se Elimino Figure mi lascia i nodi di FigureToFigureRule orfani con la chiave primaria dell'oggetto cancellato (non ci sono k sul db). 
ho provato a fare un'inverse da Figure ma credo di aver sbagliato qualcosa.. 

Mi potete aiutare? grazie
Reply all
Reply to author
Forward
0 new messages