我有这个表
id (int,pk,ai),
word(varchar 25)
假设我允许用户向我的数据库添加新的单词。
如果已经存在,我希望 Nhibernate 跳过添加新单词。
我怎样才能流畅地映射它?那可行吗?
谢谢
我有这个表
id (int,pk,ai),
word(varchar 25)
假设我允许用户向我的数据库添加新的单词。
如果已经存在,我希望 Nhibernate 跳过添加新单词。
我怎样才能流畅地映射它?那可行吗?
谢谢
映射:
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();
}