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