Either In your Promote-Person-to-SubscriberPerson process Delete/retire the original person, and create the new SubscriberPerson Or User a different model, such as Person Subscribes-To-Something (Has-a-subscription)
On Tuesday, July 10, 2012 5:52:34 PM UTC+2, par anon wrote: > I have a mapping question related to Table Per Type. I have following > hierarchy: > > - Person (maps to table person) > - A person can be a Subscriber (maps to table Subscriber) > - A person can be a Service Provider (maps to table ServiceProvider) > - A person can be {other things} > > > > This maps to respective domain objects. The current mapping looks > something like below: > public class PersonMapping : ClassMap<Models.Person> > { > public PersonMapping() > { > Table("Person"); > Id(p => p.Id); > ... other props > } > } > > public class SubscriberMapping : SubclassMap<Models.Subscriber> > { > public SubscriberMapping() > { > Table("Subscriber"); > KeyColumn("Id") > ... other props > } > > } > > public class ProviderMapping : SubclassMap<Models.Provider> > { > public ProviderMapping() > { > Table("ServiceProvider"); > KeyColumn("Id"); > ... other props > } > } > > > The problem I am facing is when a person exists but not as a Subscriber. > > The behavior that we are trying to implement is: > > Add Subscriber: > - Check if Person exists by <well defined criteria> > - If Person was found insert into subscriber table > - If Person was not found > - Create Person > - Insert into subscriber table > > Can this behavior be achieved using mapping? > > Thanks, > PG > > > -- You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To view this discussion on the web visit https://groups.google.com/d/msg/fluent-nhibernate/-/oJ6AxgYc_PoJ. To post to this group, send email to fluent-nhibernate@googlegroups.com. To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en.