1

テーブルを削除した直後に新しい行を追加すると、次のようなエラーが発生します。 - は、削除後、挿入前の行数です。

削除するコード:

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)]

どうすればよいかヒントをいただけますか?どういうわけか行数を更新する必要がありますか?

4

0 に答える 0