Frage

Ich benutze SQLite als DB während der Entwicklung und möchte das Erstellen einer endgültigen Datenbank verschieben, bis meine Domänen vollständig abgebildet sind. Also habe ich dies in meiner Datei global.asax.cs:

        private void InitializeNHibernateSession()
        {
            Configuration cfg = NHibernateSession.Init(
                webSessionStorage,
                new [] { Server.MapPath("~/bin/MyNamespace.Data.dll") },
                new AutoPersistenceModelGenerator().Generate(),
                Server.MapPath("~/NHibernate.config"));

            if (ConfigurationManager.AppSettings["DbGen"] == "true")
            {
                var export = new SchemaExport(cfg);
                export.Execute(true, true, false, NHibernateSession.Current.Connection, File.CreateText(@"DDL.sql"));
            }
        }

Der AutopersistencemodelGenerator verbindet die verschiedenen Konventionen, einschließlich einer TabLename -Erhöhung wie SO:

        public void Apply(FluentNHibernate.Conventions.Instances.IClassInstance instance)
        {
            instance.Table(Inflector.Net.Inflector.Pluralize(instance.EntityType.Name));
        }

Dies funktioniert gut ausführend, dass die generierte SQLite -DB keine pluralisierten Tabellennamen hat.

Irgendeine Idee, was mir fehlt?

Vielen Dank.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, warum dies einen Unterschied gemacht hat, aber beim Debuggen habe ich das getan, und jetzt funktioniert es:

        public void Apply(FluentNHibernate.Conventions.Instances.IClassInstance instance)
        {
            string tablename = Inflector.Net.Inflector.Pluralize(instance.EntityType.Name);
            instance.Table(tablename);
            System.Diagnostics.Debug.WriteLine(string.Format("Table = {0}", instance.TableName));
        }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top