我有一个应用程序,我在其中使用 Fluent NHibernate 与 SQLite 数据库通信并保存对象。当我运行下面的代码时,所有新项目都以空的 Guid 进入循环(这是预期的),但是一旦 SaveOrUpdate 函数运行,所有新项目都会收到相同的 Guid。我添加了 session.flush() 以查看是否可以刷新会话并强制使用唯一的 Guid ......但没有骰子。
任何帮助,将不胜感激!
我的映射文件
Id(x => x.Id).GeneratedBy.GuidComb().Unique();
编码
public void SaveItems()
{
using (ISession session = SessionProvider.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
foreach (Item item in this.Items)
{
session.SaveOrUpdate(item);
session.Flush();
}
transaction.Commit();
}
}
}