This is basic stuff with both database and ORM. Google is your friend. All I can suggest is, where is the Teacher reference in Classes, and bidirectional reference in Teacher? I don't know about auto mappings, as I usually do fluent mapping, but this is a personal design decision. Beyond that I can quote you my hourly rate.
On August 31, 2016 2:22:37 AM EDT, Ivan Ruiz de Eguilaz Sosoaga <[email protected]> wrote: > >> >> Thank you very much for your patient and your answer. >> > >I do not know If i have understud properly the concept of this: " Both >sides of the now one to many need to be saved or updated first. " > >For instance, I have created a 2 new tables to do the tests. Teachers >and >Classes. They have only the attitubutes Id and Name. And I have added a > >relation one to many from teacher to classes. > > >public class Classes : I_DTO > { > public virtual int Id { get; set; } > public virtual string Name { get; set; } > > > public Classes() > { > } >} > >namespace ExCon_DAO_SQL.DTO.Wall >{ > public class Teacher : I_DTO > { > public virtual int Id { get; set; } > public virtual string Name { get; set; } > public virtual IList<Classes> Classes { get; set; } > > public Teacher() > { > Classes = new List<Classes>(); > } > > } > > >public class Teacher_Map : IAutoMappingOverride<Teacher> > { > public void Override(AutoMapping<Teacher> mapping) > { > mapping.HasMany(x => x.Classes).LazyLoad(). > >Inverse().AsBag().ForeignKeyConstraintName("Teacher_Id").Cascade.AllDeleteOrphan(); > > } > } > > > >Ok, I have Save a Teacher with a clases in the list of clases. Both >elements are saved in the database but the clases has in the database >the >element Teacher_Id as null > >is this behaivor normal? > >second test: > >public class Classes : I_DTO > { > public virtual int Id { get; set; } > public virtual string Name { get; set; } > public virtual Teacher teacher { get; set; } > > > public Classes() > { > teacher = new Teacher(); > } >} > > public class Classes_Map : IAutoMappingOverride<Classes> > { > public void Override(AutoMapping<Classes> mapping) > { > mapping.References(x => x.teacher).Column("Teacher_Id"); > } > } > >Now I have been able to get the target but in this way: > > > Teacher profe = new Teacher(); > profe.Name = "Peter"; > > List<Classes> classes = new List<Classes>(); > Classes clase1 = new Classes(); > clase1.Name = "Class1"; > clase1.teacher = profe; > classes.Add(clase1); > profe.Classes = classes; > DAO_Result resultado = SQL_DAO_Service.Add<Teacher>(profe); > >I have to add to the teacher the clasess, and each class have to has as > >well the reference of the teacher to se that in the save it is able to >generate all properly > >is this behaviour correct? > >And last but not least > >If I have do and update of this teacher and and 2 clases with him, and >after that I remove one of the element of the classes list, and I >update >the teacher, the system is not able to know that What I want is to >delete >the class from the database, so i will have to check on my own if the >list >of clases does not have and ald element to delete it... > >is this correct? > >thanks a lot!!! > >best regards... > > >-- >You received this message because you are subscribed to a topic in the >Google Groups "Fluent NHibernate" group. >To unsubscribe from this topic, visit >https://groups.google.com/d/topic/fluent-nhibernate/tAO2ISPHvBQ/unsubscribe. >To unsubscribe from this group and all its topics, send an email to >[email protected]. >To post to this group, send email to >[email protected]. >Visit this group at https://groups.google.com/group/fluent-nhibernate. >For more options, visit https://groups.google.com/d/optout. -- Sent from my Android device with K-9 Mail. Please excuse my brevity. -- You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/fluent-nhibernate. For more options, visit https://groups.google.com/d/optout.
