Fluent NHibernate的MySQL配置 [英] MySQL Configuration for Fluent NHibernate
本文介绍了Fluent NHibernate的MySQL配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对MySQL使用的是类配置器流利的nhibernate:
I have class-configurer fluent nhibernate for MySQL:
class MySqlInitializer : INHibernateInitializer
{
public Configuration GetConfiguration()
{
var dbServer = "localhost";
var dbUsername = "root";
var dbName = "nhibernate";
var dbPassword = "";
var ormAssembly = "NHibernate_MySQL.Domain";
var config = Fluently.Configure()
.Database(MySQLConfiguration
.Standard
.ConnectionString(cs => cs
.Server(dbServer)
.Database(dbName)
.Username(dbUsername)
.Password(dbPassword)))
.Mappings(
x =>
x.FluentMappings.AddFromAssembly(Assembly.Load(ormAssembly)));
return config.BuildConfiguration();
}
}
所有数据正确. 所以,我也有集成测试(Xunit):
All data's correct. So, I also have integration test (Xunit):
[Fact]
public void GenerateMigrationScript()
{
var config = new MySqlInitializer().GetConfiguration();
var factory = (ISessionFactoryImplementor) config.BuildSessionFactory();
using (var session = factory.OpenSession())
{
var updateScripts = config
.GenerateSchemaUpdateScript(factory.Dialect,
new DatabaseMetadata((DbConnection) session.Connection, factory.Dialect));
foreach (var updateScript in updateScripts)
{
Console.WriteLine(updateScript + ";");
}
}
}
我的实体:
public interface IHiberEntutyBase
{
Guid Id { get; set; }
}
public class HiberEntity : IHiberEntutyBase
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
}
class HiberEntityMap : ClassMap<HiberEntity>
{
public HiberEntityMap()
{
Id(x => x.Id).GeneratedBy.Guid();
Map(x => x.Name);
}
}
当我运行GenerateMigrationScript()时,将写"MySql.Data.MySqlClient.MySqlException:未知数据库'nhibernate'". 请帮帮我.
When I runs GenerateMigrationScript() writes "MySql.Data.MySqlClient.MySqlException: Unknown database 'nhibernate'". Help me please.
推荐答案
它的含义是:您没有名为"nhibernate"的数据库.
It means what it says: you don't have a database called "nhibernate".
NHibernate不创建数据库,仅创建模式(表,键).该数据库必须存在.
NHibernate does not create databases, only schemas (tables, keys). The database must exist.
这篇关于Fluent NHibernate的MySQL配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文