【问题标题】:MySQL Configuration for Fluent NHibernateFluent NHibernate 的 MySQL 配置
【发布时间】:2010-10-28 17:42:12
【问题描述】:

我有用于 MySQL 的类配置器 fluent nhibernate:

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: Unknown database 'nhibernate'”。 请帮帮我。

【问题讨论】:

    标签: mysql nhibernate fluent


    【解决方案1】:

    它的意思是:你没有一个名为“nhibernate”的数据库。

    NHibernate 不创建数据库,只创建模式(表、键)。数据库必须存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      相关资源
      最近更新 更多