gpt4 book ai didi

sqlite - NHibernate、Sqlite、丢失的表和 IOC 乐趣

转载 作者:行者123 更新时间:2023-12-03 17:16:10 24 4
gpt4 key购买 nike

我正在对使用 NHibernate 实现持久性的类库进行单元测试。 NHibernate 正在使用 Sqlite 内存数据库进行测试。在正常情况下,很容易让 StructureMap 为我踢出一个 session 。

但是,因为我使用内存数据库来提高测试速度,所以我需要在测试期间有一个可用的 session (因为当我创建一个新 session 时它会破坏数据库)。还有另一个皱纹。目前困扰我的案例是测试自定义的基于 NHibernate 的 ASP.NET 成员提供程序。这些显然是每个 AppDomain 创建一次,所以我不应该将 session 注入(inject)其中,原因很明显。

structuremap 中是否有一种方法可以告诉它摆脱特定类型的实例,同时仍然保留告诉它如何实例化该类型的位?真的,如果我能摆脱它,我会让它像 HttpScoped 对象生命周期一样工作,但显然我只能在 Http 请求的上下文中这样做。是否有一种直接的方法来手动控制来自结构图的对象的生命周期?

对于这个问题的长度以及它可能是一个愚蠢的问题的可能性,我深表歉意。我是一个人在这个项目上,所以我真的没有任何人可以交流想法。

最佳答案

您可以将 session 包装在您自己的 ISession 实现中,该实现委托(delegate)给您控制生命周期的真实 session 。然后将您自己的 ISession 注册为实例。

关于sqlite - NHibernate、Sqlite、丢失的表和 IOC 乐趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945990/

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