使用Sqlite64作为内存数据库的ServiceStack OrmLite导致缺少auth
我试图在我的单元测试中使用Sqlite作为内存数据库和ServiceStack ORMlite.
如果我用SQLite保存到文件运行我的测试,即.使用connectionstring "Data Source=|DataDirectory|unittest.db;Version=3;" ,它工作正常,ServiceStacks生成auth表 userRepository.CreateMissingTables(); 但是,当我尝试使用此连接字符串将SQLite用作内存数据库时 ":memory:" 说的时候我有例外 SQLite error no such table: UserAuth 我第一次尝试通过这样做来获取用户 userRepository.GetUserAuthByUserName(...) 这是在我调用了userRepository.CreateMissingTables()之后,如果我切换到使用带有文件数据库的SQLite,它就能正常工作.有谁知道问题可能是什么? (由于Ormlite 3.9.4中对ORM lite版本1.0.65.0的错误引用,我不得不降级到ORMLite版本3.9.0) 解决方法ServiceStack v5最新版本的ServiceStack会自动禁用SQLite的AutoDisposeConnection:memory:connections,因此您可以正常配置OrmLiteConnectionFactory,例如: var dbFactory = new OrmLiteConnectionFactory(":memory:",SqliteDialect.Provider); var sqliteRepo = new OrmLiteAuthRepository(dbFactory); sqliteRepo.CreateMissingTables(); ServiceStack v3 每当关闭内存数据库中Sqlite的数据库连接时,就会丢失数据库. 因此,当您配置数据库工厂时,您需要告诉它永远不要处理连接,您可以使用autoDisposeConnection构造函数参数,autoDisposeConnection:false,dialectProvider:SqliteDialect.Provider); var sqliteRepo = new OrmLiteAuthRepository(dbFactory); sqliteRepo.CreateMissingTables(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ajax跨域请求报错Cross origin requests are only supporte
- ruby-on-rails – 使用Authlogic发送注册验证电子邮件?
- C# 创建EXCEL图表并保存为图片的实例
- $.ajax not working in chrome but is working in firefox
- quick-cocos2d-x API函数汇总
- Swift中可选项、闭包、便利构造函数的相关问题
- Cocos2D-x HelloWorld代码执行过程
- c – C / ObjC – 参数大小.使用指针与值
- ruby-on-rails – 从主干轨道使用实心轨距时从高图中获得错
- xml – 动态更改功能区的按钮标签Excel