Previously I have talked only about entity creation and maintain. But what if we need to add some business logic to this entity. For example, we have a table of Pages, and you need to fetch all cities of some country?
First of all we need never to forget, that all
AcroDB entities are lazy-loaded and each of them contains a reference to the
AcroDataContext, that created them. And if you want to save an integrity, you need to use the same
AcroDataContext when fetching new entities. So, how will we do?
The first step was written before is the entity creation:
Under the interface we have small problem, which is we can't implement methods. So, we need to create separate classes of business logic, or to write extension methods. I used to implement extension method for the interface:
You may notice the extension method
AcroContext(). To use it you need to reference
AcroDB.Helpers namespace. This method returns the link to data context that was attached to entity.
So, in result you could call:
And all children of the page will be fetched from DB.