fluent nhibernate中的自动保存不起作用

fluent nhibernate中的自动保存不起作用,nhibernate,fluent-nhibernate,fluent,Nhibernate,Fluent Nhibernate,Fluent,我有个问题。 当我尝试将类型为book的对象插入DB时, 如果作者不存在,它还应该将作者添加到authors表中。 相反,我得到一个错误“未保存对象”,并且该对象尚未保存。 有什么问题吗 守则: Book: Id(x => x.ID); Map(x => x.Title); References(x => x.Author) .Not.LazyLoad() .

我有个问题。 当我尝试将类型为book的对象插入DB时, 如果作者不存在,它还应该将作者添加到authors表中。 相反,我得到一个错误“未保存对象”,并且该对象尚未保存。 有什么问题吗

守则:

Book:
            Id(x => x.ID);
            Map(x => x.Title);
            References(x => x.Author)
            .Not.LazyLoad()
            .Column("Author_id");

Author:
            Id(x => x.ID);
            Map(x => x.FullName);

不要忘记您必须使用
会话。获取
/
会话。加载
以获取现有作者

映射是什么?从你所说的来看,这似乎是ID映射或其他方面的问题cascade@user1430430您得到该错误是因为数据库中不存在作者。Author实际上是根实体,因此您应该首先保存Author对象。它确实存在于数据库中。如果我手动添加Author,它会起作用,如果我从数据库中获取它,它就有Author对象。该怎么办?不起作用!行被另一个事务更新或删除(或未保存的值映射不正确):[Library.Author#1]我能做什么?您是否使用同一个会话获取作者并保存书籍?当不使用session.Lock时(author,LockMode.None)我是在泛型类型中完成的…所以我无法使用它…可能还有其他选项?所有东西都映射正确。谢谢!!最好的选择是用你用来保存这本书的同一个会话加载它,因为这是工作单元(会话),怎么可能呢?如果程序被关闭…我看到保存程序是自动的,我不能理解
References(x => x.Author)
    .Not.LazyLoad()
    .Cascade.All()         // unsaved Authors should also be saved
    .Column("Author_id");