開発中に SQLite をデータベースとして使用していますが、ドメインが完全にマップされるまで、最終的なデータベースの実際の作成を延期したいと考えています。だから私は Global.asax.cs ファイルにこれを持っています:
private void InitializeNHibernateSession() { 構成 cfg = NHibernateSession.Init( webSessionStorage、 新しい [] { Server.MapPath("~/bin/MyNamespace.Data.dll") }, 新しい 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.Table(Inflector.Net.Inflector.Pluralize(instance.EntityType.Name)); }
これは、生成された sqlite db に複数形のテーブル名がないことを除いて、うまく機能しています。
私が見逃しているものはありますか?
ありがとう。