開発中に 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 に複数形のテーブル名がないことを除いて、うまく機能しています。
私が見逃しているものはありますか?
ありがとう。