NHibernate的。记录唯一性

时间:2012-02-01 13:46:27

标签: c# database nhibernate entity unique

我有一个班级

abstract class Entity<T> where T : Entity<T>
{
    public virtual Guid ID { get; private set; }
}

我的所有实体都是从它继承的。在employee实体的情况下,不可能有两名员工拥有相同的passport-sn和其他身份特定文档。

如果我不允许将两名具有不同surrogate keys和相同passport number的员工放入数据库?

映射中是否存在约束?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以添加护照的唯一约束

如果您使用的是Fluent:

mapping.Id( employee => employee.Id);
mapping.Map(employee  => employee.passport ).Unique(); 

在您的域中,如果所有实体都从Entity继承,则所有实体都将使用代理键,因此您必须处理任何其他约束