I remember having to modify the Enhanced stuff but I've never seen anyone
use that so I'll just skip it.
On Tuesday, March 10, 2015 at 3:50:45 PM UTC-4, Amro El-Fakharany wrote:
>
> 1) A PersistentClass holds a couple of Property iterators. I would first
> try “SubclassPropertyClosureIterator” (but I’m not really sure!).
>
> Each Property instance holds a collection of Column objects called
> “ColumnIterator”.
>
> To get the type of a column you just call: column.GetSqlTypeCode(mapping).
>
> You get that “mapping” argument by calling BuildMapping() on a
> Configuration instance which you should do before accessing ClassMappings
> for the first time.
>
> Here is a pseudo code example:
>
> var mapping = nhConfiguration.BuildMapping()
>
> foreach(var pc in nhConfiguration.ClassMappings)
>
> {
>
> foreach(var property in pc.SubclassPropertyClosureIterator)
>
> {
>
> foreach(var col in property.ColumnIterator)
>
> var dbType = col.GetSqlTypeCode(mapping).DbType
>
> }
>
> }
>
>
>
> 2) As far as I can tell, the only true black box identifier is
> TableGenerator.
>
> If I’m not completely mistaken the rest should be accessible through
> PersistenceClass.IdentifierProperty.ColumnIterator
>
>
>
> Amro
>
>
>
> *Von:* [email protected] <javascript:> [mailto:
> [email protected] <javascript:>] *Im Auftrag von
> *Jeffrey
> Becker
> *Gesendet:* Dienstag, 10. März 2015 19:40
> *An:* [email protected] <javascript:>
> *Betreff:* Re: [nhibernate-development] Re: Migrations Status & Feedback
> request
>
>
>
> Amaro, I started going down the path you suggested and I'm running into
> some pretty big road blocks.
>
>
>
> 1) Resolving the type of a column requires access to the mapping which is
> private to Configuration
>
> 2) PersistentIdentifiers are black-boxes which keep their params private
> and spit out some sql.
>
>
>
> These are both pretty big blockers which my code addresses through the
> operations framework. I'm definitely much more interested in using
> FluentMigrator to do the actual migrations but at this point NHibernate
> doesn't expose the information FluentMigrator needs.
>
> On Monday, February 16, 2015 at 9:15:49 AM UTC-5, Amro El-Fakharany wrote:
>
> Take a look at the implementation of IterateGenerators in the
> Configuration class (the last method in Configuration.cs).
>
> It shows how to get hold of identifier generators.
>
>
>
> As for auxiliary objects the easiest way I can ad hoc think of would be to
> subscribe to one of the Events BeforeBindMapping or AfterBindMapping of
> Configuration.
>
> Both events gets HbmMapping as a property of the argument
> BindMappingEventArgs.
>
> In the event handler you just iterate over HbmMapping.DatabaseObjects.
>
> I won’t overestimate the importance of auxiliary objects though.
>
>
>
>
>
> *Von:* [email protected] [mailto:
> [email protected]] *Im Auftrag von *Jeffrey Becker
> *Gesendet:* Montag, 16. Februar 2015 14:26
> *An:* [email protected]
> *Betreff:* Re: [nhibernate-development] Re: Migrations Status & Feedback
> request
>
>
>
> I did look into using the PersistentClass property but that doesn't seem
> to include information about identifier generators or auxiliary db objects.
> My first thought with this was to simply spider configuration and spit out
> a fluent migrator based class. I went down the whole operations framework
> path after concluding that all the mapping information I needed just wasn't
> available.
>
> On Saturday, February 14, 2015 at 9:54:00 AM UTC-5, Amro El-Fakharany
> wrote:
>
> There is no need to read XML files or interpret mapping-by-code stuff.
> All of the required mapping information ends up in PersistentClass which
> is exposed in Configuration through the Enumerable Property ClassMappings
> if I remember correctly.
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "nhibernate-development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
---
You received this message because you are subscribed to the Google Groups
"nhibernate-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.