Trước khi tôi bắt máy tính của tôi trong tuần tiếp theo ...NHibernate.AssertionFailure: null nhận dạng
Tôi đã kiểm tra ra mọi câu hỏi khác về vấn đề này, nhưng không ai trong số họ có giải pháp. Tôi đã xóa mã này ngay lập tức, nhưng nó vẫn không hoạt động.
Tôi nhận được lỗi này khi lưu một đối tượng: NHibernate.AssertionFailure: null nhận dạng
này được tập tin bản đồ của tôi:
public class OrderMap : BaseMap<Order>
{
public SalesOrderMap()
{
Id(x => x.Id).Column("OrderId");
}
}
Đây là thực thể:
public class Order
{
public virtual int Id { get; protected set; }
}
Đây là mã thử nghiệm của tôi:
Order order = new Order();
ISession session = SessionFactory.GetCurrentSession();
session.SaveOrUpdate(order); <----EXCEPTION ON THIS LINE
session.Flush();
.210
Và rồi đập mạnh ... nó phá vỡ với
[AssertionFailure: null identifier]
NHibernate.Engine.EntityKey..ctor(Object identifier, String rootEntityName, String entityName, IType identifierType, Boolean batchLoadable, ISessionFactoryImplementor factory, EntityMode entityMode) +135
NHibernate.Engine.EntityKey..ctor(Object id, IEntityPersister persister, EntityMode entityMode) +70
NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +545
NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +322
NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +130
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) +27
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) +63
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event) +89
NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) +188
NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) +259
NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj) +256
nếu có ai quan tâm, đây là cách các nhà máy được xây dựng phiên:
ControllerSource.SessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(DataConfig.ConnectionString))
.Mappings(x => x.FluentMappings.Add(typeof (OrderMap)))
.ExposeConfiguration(c =>{
c.SetProperty("generate_statistics", "false");
c.SetProperty("current_session_context_class", contextClass);
c.SetProperty("cache.use_second_level_cache", "false");
c.SetProperty("cache.use_query_cache", "false");
c.SetProperty("connection.release_mode", "on_close");
})
.BuildSessionFactory();
Bạn có thể đăng tập lệnh tạo cho bảng thứ tự không? – twaggs
Hiện tại chỉ là một bảng có trường, tự động gia tăng, int, không thể rỗng – Paul
(Tôi nghĩ mình đã từng là một viên thuốc ........) – Paul