0

У меня есть это отображение:FluentNHibernate - Как сопоставить KeyProperty с db сгенерированным значением?

public sealed class AcessoMap : ClassMap<Acesso> 
{ 
    public AcessoMap() 
    { 
     CompositeId() 
      .KeyReference(x => x.Associado) 
      .KeyProperty(x => x.DataHora, k => k.ColumnName("aceDtHor").Type("Timestamp")); 

     Map(x => x.IP, "aceEndIP"); 
     Map(x => x.NumeroAcesso).Not.Nullable().Generated.Insert(); 
     Map(x => x.DataAcessoAnterior).Not.Nullable().Generated.Insert(); 
     Map(x => x.ServerVariables).LazyLoad().Generated.Insert(); 
    } 
} 

Как я могу настроить его DataHora использовать свойство базы данных сгенерированного значение? (Ток он имеет значение по умолчанию на дб, который устанавливает его текущую метку времени)

Спасибо

ответ

0

Я не знаю, если это будет работать, но это что-то попробовать. Настройте свою временную колонку, вне определения CompositeId.

Map(x=>x.RecordVersion).Column("aceDtHor") 
         .CustomSqlType("timestamp") 
         .Not.Nullable() 
         .CustomType("BinaryBlob") 
         .Generated.Always(); 
+0

не работает ... Мне нужно отправить нуль, таким образом моя база данных заполнит его значением по умолчанию для столбца (то есть «now()»). – Zote

+0

@ Хорошо зарекомендовать себя, единственное, что я могу придумать, это отметить метку времени как поле Version 'Version (x => x.aceDtHor) .... .UnsavedValue (" null ") ..', а затем использовать его как часть вашего ключа. –

 Смежные вопросы

  • Нет связанных вопросов^_^