テーブルを削除した直後に新しい行を追加すると、次のようなエラーが発生します。 - は、削除後、挿入前の行数です。
削除するコード:
using (var session = factory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
foreach (var row in rows)
{
session.Delete((Word)row.DataBoundItem);
}
transaction.Commit();
session.Flush();
}
}
追加するコード:
using (var session = factory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
language.AddWord(word);
session.SaveOrUpdate(language);
transaction.Commit();
session.Flush();
}
}
マッピング:
public WordMapping()
{
Id(x => x.Id).GeneratedBy.Native();
Map(x => x.Word1);
Map(x => x.Word2);
Map(x => x.Count);
References(x => x.Language)
.Not.LazyLoad();
}
デバッグ用に作成された SQL コード:
NHibernate: INSERT INTO [Word] (Word1, Word2, Count, Language_id)
VALUES (@p0, @p1, @p2, @p3);
select SCOPE_IDENTITY();
@p0 = 't2' [Type: String (4000)],
@p1 = 't2' [Type: String (4000)],
@p2 = 10 [Type: Int32 (0)],
@p3 = 1 [Type: Int32 (0)]
どうすればよいかヒントをいただけますか?どういうわけか行数を更新する必要がありますか?