Свободный NHibernate SchemaExport для SQLite не множит имена таблиц - PullRequest
0 голосов
/ 03 июня 2010

Я использую SQLite в качестве базы данных во время разработки и хочу отложить создание окончательной базы данных до полного сопоставления моих доменов. Итак, у меня есть это в моем файле 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"));
            }
        }

AutoPersistenceModelGenerator подключает различные соглашения, включая TableNameConvention, например:

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

Это хорошо работает, за исключением того, что сгенерированная база данных sqlite не имеет имен таблиц во множественном числе.

Есть идеи, что мне не хватает?

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2010

Ну, я не уверен, почему это имело значение, но в процессе отладки я сделал это, и теперь это работает:

        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));
        }
...