gpt4 book ai didi

C# - Nhibernate 问题

转载 作者:行者123 更新时间:2023-11-30 18:06:46 25 4
gpt4 key购买 nike

我对以下测试用例特别困惑:

public void TestMapping()
{
var autoPersistenceModel = AutoMap.AssemblyOf<RepositoryEntity>().Where(
x => x.Namespace.EndsWith("Descriptors"));

var configuration = Fluently.Configure()
.Database(SQLiteConfiguration.Standard.ShowSql().InMemory)
.Mappings(x => x.AutoMappings.Add(autoPersistenceModel))
.ExposeConfiguration(x => new NHibernate.Tool.hbm2ddl.SchemaExport(x).Create(true, false));

var sessionFactory = configuration.BuildSessionFactory();

using (var session = sessionFactory.OpenSession())
{
new PersistenceSpecification<IndicatorUnitDescriptor>(session)
.CheckProperty(x => x.Name, "Name1")
.CheckProperty(x => x.Timestamp, new DateTime(2000, 10, 10))
.VerifyTheMappings();
}
}

如您所见,我正在试验自动映射,但不幸的是,以下测试用例引发了以下 SQLite 异常(第一个包含已完成的实际查询):

drop table if exists "IndicatorUnitDescriptor"

drop table if exists "StockUnitDescriptor"

create table "IndicatorUnitDescriptor" (
Id integer,
Name TEXT,
Timestamp DATETIME,
primary key (Id)
)

create table "StockUnitDescriptor" (
Id integer,
Name TEXT,
Timestamp DATETIME,
primary key (Id)
)

NHibernate: INSERT INTO "IndicatorUnitDescriptor" (Name, Timestamp) VALUES (@p0, @p1); select last_insert_rowid();@p0 = 'Name1' [Type: String (0)], @p1 = 10.10.2000 0:00:00 [Type: DateTime (0)]

System.Data.SQLite.SQLiteException: SQLite error
no such table: IndicatorUnitDescriptor

我不明白为什么会这样 - SQL 命令似乎正常工作,相应的表应该由 create table 查询创建。

我假设我的代码有问题(我可能漏掉了什么)。你能帮帮我吗?

最佳答案

我认为您使用了两个 session 。一个在数据库创建期间和在您的测试中。尝试像这样设置。

  Configuration cfg = Fluently.Configure()
.Database(SQLiteConfiguration.Standard.InMemory())
.Mappings(m => m.HbmMappings.AddFromAssembly(_mappingsAssembly))
.BuildConfiguration();

var session = cfg.BuildSessionFactory().OpenSession();

new SchemaExport(cfg).Execute(false, true, false, session.Connection, null);

关于C# - Nhibernate 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527297/

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