Конфигурация MySQL для Fluent NHibernate - PullRequest
0 голосов
/ 28 октября 2010

Я свободно использую класс-конфигуратор для 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):

[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 »». Помогите мне, пожалуйста.

1 Ответ

3 голосов
/ 28 октября 2010

Это означает, что там написано: у вас нет базы данных под названием «nhibernate».

NHibernate не создает базы данных, только схемы (таблицы, ключи). База данных должна существовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...