0
シャープアーキテクチャ/流暢NHibernateを使用して、私のクラスにVersion
プロパティ(int
)を設定しましたが、そのオブジェクトを更新するとバージョン番号が正しく更新されてもエラーはスローされません。例外をスローするのではなく、基本的にバージョンがマージされます。NHibernateのバージョンプロパティが動作していません
public class MyClassMap : IAutoMappingOverride<MyClass>
{
public void Override(AutoMapping<MyClass> mapping)
{
mapping.Version(x => x.Version);
mapping.OptimisticLock.Version();
}
}
2つの同時コミットのバージョンが異なることに注意してください。ただし、何も起こりません。
何がありますか?
編集:はここでは、コードです:
public ActionConfirmation SaveOrUpdate(IncidenciaDetalleModel model)
{
Incidencia incidencia = model.Codigo == null
? new Incidencia(Convert.ToInt32(model.Solicitante.Id))
: Load(model.Guid);
TransferFormValuesTo(incidencia, model);
// Invoke Sharp NHibernate's SaveOrUpdate()
Incidencia saved = base.SaveOrUpdate(incidencia);
return ActionConfirmation.CreateSuccessConfirmation(saved);
}
private void TransferFormValuesTo(Incidencia incidencia, IncidenciaDetalleModel model)
{
incidencia.Resumen = model.Resumen.Trim();
incidencia.Descripcion = model.Descripcion.Trim();
incidencia.Solicitante = model.Solicitante.Id.ToString(CultureInfo.InvariantCulture);
incidencia.Regional = regionalTask.Load(model.Regional.GetRegionalId());
}
のSELECTの後にあるかどうかを確認するために、「NHibernate.SQL」のログを有効にすることができ更新するコードを示しています。あなたは 'session.Merge()'を使いますか? – Firo
いいえ、私は通常のsession.SaveOrUpdate()を使用します。私は仕事に就くと約1時間でコードを表示します。ありがとう。 – rebelliard
はい、変更をデータベースに保存するコードを表示してください。 –