Hello,
Isn't it a big limitation that we can't map a one-to-one relationship in "the normal" way?
I will give a quick example. A while ago, I was on a quest to find a way that would allow me to develop a generic repository and unit of work approach that would allow me to switch between ORM frameworks fairly easily with an absolute minimum amount of code changes. I used the EntityFramework and NHibernate as starting points to see if a common ground could be found.
I will admit that this might be a fairly unusual situation. Nobody should want to switch ORM framework when in the middle of developing a large enterprise application, but it did happen to me and that motivated me to research this particular problem. In the end I developed a fairly
nice solution (in my opinion, that is... :D).
Today I decided to add OpenAccess support to my framework solution and found there's a bit of a problem when it comes to mapping one-to-one relationships. In EntityFramework and NHibernate a one-to-one relationship is very straight forward. The relationship is resembled by a (navigation) property. To my disappointment I found that OpenAccess does not have this straight forward one-to-one mapping.
In my case this is absolutely game breaking. This means that my (domain) model would look different from a model built on EntityFramework or NHibernate. Obviously this means that any code previously written against the EF or NH model would no longer be working with an OA domain model.
I can imagine it would make sense to use inheritance in this scenario. However, to stay in line with all the other ORM frameworks that I have used, I would have liked to see a more conventional approach that keeps the navigation property in tact without inheritance. Is that at all possible in OpenAccess at the moment?
Kind regards,
Rob Jones