0

私はこのテーブル
ID(int、pk、ai)、
word(varchar 25)を持っています

ユーザーがデータベースに新しい単語を追加できるようにしているとしましょう。
Nhibernateがすでに存在する場合は、新しい単語の追加をスキップしてほしい。
どうすれば流暢にマッピングできますか?それは実行可能ですか?

ありがとう

4

1 に答える 1

1

マッピング:

Map(x => x.Word).Unique(); // just to make sure it is unique

コード:

void AddWords(ICollection<string> words)
{
    var existingWords = session.QueryOver<UniqueWord>()
        .WhereRestrictionOn(w => w.Word).In(words)
        .Select(w => w.Word)
        .List<string>();

    foreach(var word in words.Except(existingWords))
    {
        session.Save(new UniqueWord(word));
    }
    session.Flush();
}
于 2012-10-11T08:26:46.353 に答える