【发布时间】:2010-08-12 11:30:41
【问题描述】:
我尝试使用 C# Sqlite 运行我的单元测试,而不是使用此博客文章作为指导,而不是使用真正的数据库或模拟我们的数据库层:Nhibernate C# Sqlite。
不幸的是,NHibernate 要求连接是 C#-Sqlite 驱动程序未提供的 DbConnection。我查看了源代码并注意到以下代码:
#if NET_2_0
public class SqliteConnection : DbConnection, ICloneable
#else
public class SqliteConnection : IDbConnection, ICloneable
#endif
显然,作者决定停止使用“旧”基类并改用 IDbConnection、IDbTransaction 等接口。
更改代码是没有选择的,因为这等于编写一个必须测试和维护的新客户端。
有谁知道让当前版本的 c#sqlite 与 NHibernate 一起工作的简单解决方案?
【问题讨论】:
-
我不确定问题到底出在哪里。我可以告诉你我是如何使用 sqlite 进行测试的......
-
异常是:15:03:28,877 错误 [7] SchemaValidator [(null)]- 无法获取数据库元数据 System.InvalidCastException: Das Objekt des Typs "Community.CsharpSqlite.SQLiteClient.SqliteConnection" kann nicht 在 Typ “System.Data.Common.DbConnection” umgewandelt werden。北NHibernate.Tool.hbm2ddl.ManagedProviderConnectionHelper.Prepare() 北NHibernate.Tool.hbm2ddl.SchemaValidator.Validate()
-
我是移植 C#SQLite 的人。我没有意识到任何人仍然需要 NET 2.0 支持,因为所有论坛 cmets 都鼓励放弃它。此外,在大多数情况下,客户端是由 Mono 项目组提供的。如果您确实需要 Net 2.0 定义编译器选项 NET_2_0,如果这不起作用,请在 groups.google.com/group/csharp-sqlite 上开始讨论或在此处请求 csharpsqlite.uservoice.com/forums/41270-general
-
您尝试过连接提供商吗?成功了吗?
-
至少它一开始并没有让我崩溃。明天我会尝试使用会话工厂并报告;)
标签: nhibernate sqlite