流利的nhibrenate schemaexport to sqlite不复合桌子名称
-
23-10-2019 - |
题
我在开发过程中使用SQLite作为DB,我想推迟实际创建最终数据库,直到我的域被完全映射为止。因此,我在我的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")); } }
AutoperSistenceModegenerator挂起各种惯例,包括像这样的tablenameconevention:
public void Apply(FluentNHibernate.Conventions.Instances.IClassInstance instance) { instance.Table(Inflector.Net.Inflector.Pluralize(instance.EntityType.Name)); }
这很好地执行了,生成的SQLite DB没有复数的表名称。
知道我缺少什么吗?
谢谢。
解决方案
好吧,我不确定为什么会有所作为,但是在调试过程中,我做到了,现在它有效:
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)); }
不隶属于 StackOverflow