Fluent nhibernate Fluent NHibernation唯一字符串映射(忽略重复项)

Fluent nhibernate Fluent NHibernation唯一字符串映射(忽略重复项),fluent-nhibernate,unique,Fluent Nhibernate,Unique,我有这张桌子 id(智力、智力、智力), word(varchar 25) 假设我允许用户向我的数据库添加新的单字。 如果新单词已经存在,我希望Nhibernate跳过添加新单词。 我如何用fluent映射它?这可行吗 谢谢映射: Map(x => x.Word).Unique(); // just to make sure it is unique 代码: void AddWords(ICollection words) { var existingWords=session.Quer

我有这张桌子
id(智力、智力、智力),
word(varchar 25)

假设我允许用户向我的数据库添加新的单字。
如果新单词已经存在,我希望Nhibernate跳过添加新单词。
我如何用fluent映射它?这可行吗

谢谢映射:

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

void AddWords(ICollection words)
{
var existingWords=session.QueryOver()
WhereRestrictionOn(w=>w.Word).In(words)
.选择(w=>w.Word)
.List();
foreach(单词中的var单词。除了(现有单词))
{
session.Save(新的UniqueWord(word));
}
session.Flush();
}
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();
}