gpt4 book ai didi

Fluent NHibernate 的 MySQL 配置

转载 作者:行者123 更新时间:2023-11-29 06:20:24 25 4
gpt4 key购买 nike

我有 MySQL 的类配置器流利的 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:未知数据库'nhibernate'”。请帮助我。

最佳答案

这就是它所说的:你没有一个名为“nhibernate”的数据库。

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

关于Fluent NHibernate 的 MySQL 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com