Fluent NHibernate的MySQL配置 [英] MySQL Configuration for Fluent NHibernate

查看:114
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆