在内存数据库单元测试中 - 播种数据

时间:2015-11-05 06:32:46

标签: c# sqlite unit-testing fluent-nhibernate in-memory-database

所以我为我的单元测试设置了一个Sqlite In内存数据库。

我计划将常量/查找从真实数据库复制到内存数据库。

将记录插入内存数据库时,我卡住了。

List<SqlLookup> lookups;

using(var session = new DataSession()) {    
    lookups = session.QueryOver<SqlLookup>().List()  
}

using (var session = new InMemoryDataSession()) {    
    session.Merge(lu);  
}
  1. 问题是,即使原始数据已经设置了Id,也是如此 没有保存到数据库。 Nhibernate仍会生成自动递增 一个
  2. 由于正在保存新的Id,因此更新映射时会更新已更新旧记录ID时引发异常。
  3.   

    {&#34;行已被其他交易更新或删除(或未保存的值   映射不正确)

    有解决方法吗?

    如果没有,这是将这些常量数据播种到内存数据库的正确方法吗?

    是否还有其他解决方案来运行数据的SQL脚本?维护数百个查找脚本很难。

    谢谢。

0 个答案:

没有答案