c# - NHibernate - 带有 WHERE 子句的唯一索引

标签 c# sql-server nhibernate fluent-nhibernate

我正在使用 Fluent NHibernate 并且我正在尝试创建一个包含忽略空值的唯一列的表。经过长时间的研究,我得出的结论是,唯一可能的方法是使用 WHERE 子句创建唯一索引,例如:

CREATE UNIQUE NONCLUSTERED INDEX IX_MyIndex on MyTable (MyColumn)
WHERE MyColumn IS NOT NULL

现在我在需要时手动运行这个脚本。有什么方法可以在 Fluent 中映射该列以便自动检查吗?

我正在使用 SQL Server 2012。

最佳答案

您可以在映射类中提及唯一列:检查以下示例

public class AccountsMap : ClassMap<Accounts>
{
    public AccountsMap()
    {
        Id(x => x.Id).GeneratedBy.Increment();
        Map(x => x.Username).Unique().Nullable(); //Here the username column is unique 
        Map(x => x.Password);            
    }
}

关于c# - NHibernate - 带有 WHERE 子句的唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20743078/

相关文章:

c# - 保存/检索图像。 ASP.NET MVC

c# - 在 HealthVault 中调用 PersonInfo.CreateFromXML 时出现空引用异常

nhibernate - hibernate - createCriteria 还是 createAlias?

nhibernate - NHibernate 中的 CaSTLe 代理工厂是什么?

sql - 组合多行以创建具有相同 ID 的新行

sql-server - 如何从 KILLED/ROLLBACK 状态挽救 SQL Server 2008 查询?

sql-server - 一对多返回单行

c# - CodeContract 认为分配的只读字段可以为空

c# - 手动安装我的 Word 插件 VSTO(功能区)?用 c# 构建

c# - 等待 CancellationToken 取消请求