使用FluentNhibernate的SchemaExport
这个代码有什么问题吗。我没有得到任何生成的内容,也没有抛出异常使用FluentNhibernate的SchemaExport,nhibernate,fluent-nhibernate,schemaexport,Nhibernate,Fluent Nhibernate,Schemaexport,这个代码有什么问题吗。我没有得到任何生成的内容,也没有抛出异常 public static void ExportSchema() { Configuration cfg = LoadDefaultConfiguration(); Fluently.Configure(cfg) .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.
public static void ExportSchema()
{
Configuration cfg = LoadDefaultConfiguration();
Fluently.Configure(cfg)
.Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.Load("dnnSphere.Meta")))
.ExposeConfiguration(c => new SchemaExport(c).SetOutputFile("myDDL.sql").Execute(true,true,false));
}
这取决于你想做什么。例如,如果您使用的是内存数据库中的SQLite,除非指定连接,否则我永远不会让它工作。这意味着我必须先打开一个会话并获得会话的连接
protected InMemoryFixture()
{
Configuration config = GetConfig();
ISessionFactory sessionFactory = config.BuildSessionFactory();
ISession session = _sessionFactory.OpenSession();
new SchemaExport(_config).Execute(true, true, false, session.Connection, Console.Out);
}
private Configuration GetConfig()
{
return GetMappings()
.Database(SQLiteConfiguration.Standard.InMemory)
.BuildConfiguration();
}
private FluentConfiguration GetMappings()
{
return Fluently.Configure().Mappings(m => m.FluentMappings.AddFromAssemblyOf<NewsMap>());
}
受保护的InMemoryFixture()
{
配置config=GetConfig();
ISessionFactory sessionFactory=config.BuildSessionFactory();
ISession session=_sessionFactory.OpenSession();
新SchemaExport(_config).Execute(true、true、false、session.Connection、Console.Out);
}
私有配置GetConfig()
{
返回GetMappings()
.Database(SQLiteConfiguration.Standard.InMemory)
.BuildConfiguration();
}
私有FluentConfiguration GetMappings()
{
流畅地返回.Configure().Mappings(m=>m.FluentMappings.AddFromAssemblyOf());
}
然后还有SchemaExport(cfg);当然还有SchemaUpdate(cfg)。这取决于您想做什么。例如,如果您使用的是内存数据库中的SQLite,除非指定连接,否则我永远不会让它工作。这意味着我必须先打开一个会话并获得会话的连接
protected InMemoryFixture()
{
Configuration config = GetConfig();
ISessionFactory sessionFactory = config.BuildSessionFactory();
ISession session = _sessionFactory.OpenSession();
new SchemaExport(_config).Execute(true, true, false, session.Connection, Console.Out);
}
private Configuration GetConfig()
{
return GetMappings()
.Database(SQLiteConfiguration.Standard.InMemory)
.BuildConfiguration();
}
private FluentConfiguration GetMappings()
{
return Fluently.Configure().Mappings(m => m.FluentMappings.AddFromAssemblyOf<NewsMap>());
}
受保护的InMemoryFixture()
{
配置config=GetConfig();
ISessionFactory sessionFactory=config.BuildSessionFactory();
ISession session=_sessionFactory.OpenSession();
新SchemaExport(_config).Execute(true、true、false、session.Connection、Console.Out);
}
私有配置GetConfig()
{
返回GetMappings()
.Database(SQLiteConfiguration.Standard.InMemory)
.BuildConfiguration();
}
私有FluentConfiguration GetMappings()
{
流畅地返回.Configure().Mappings(m=>m.FluentMappings.AddFromAssemblyOf());
}
然后还有SchemaExport(cfg);当然还有SchemaUpdate(cfg)。不,我使用的是MSSQL 2005。问题是其中一列名为“Schema”。现在我解决了这个问题,我尝试了SQLLite provider,但得到了一个错误:在程序集SQLite.NET中找不到IDbCommand和IDbConnection实现。确保程序集SQLite.NET位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名。这就是你得到的吗?这是一个常见的问题。首先,需要将SQLite引用设置为本地复制(引用属性),然后需要在运行项目之前构建项目。请注意,我主要使用SQLite进行测试,但它确实很漂亮!:)在MSSQL 2005的情况下,虽然我使用了新的SchemaExport(cfg),但您应该对您所拥有的一切没有问题;在这里创建成功。不,我使用的是MSSQL 2005。问题是其中一列名为“Schema”。现在我解决了这个问题,我尝试了SQLLite provider,但得到了一个错误:在程序集SQLite.NET中找不到IDbCommand和IDbConnection实现。确保程序集SQLite.NET位于应用程序目录或全局程序集缓存中。如果程序集位于GAC中,请使用应用程序配置文件中的元素指定程序集的全名。这就是你得到的吗?这是一个常见的问题。首先,需要将SQLite引用设置为本地复制(引用属性),然后需要在运行项目之前构建项目。请注意,我主要使用SQLite进行测试,但它确实很漂亮!:)在MSSQL 2005的情况下,虽然我使用了新的SchemaExport(cfg),但您应该对您所拥有的一切没有问题;在这里创造成功。