NHibernate.记录唯一性

本文关键字:唯一性 记录 NHibernate | 更新日期: 2023-09-27 18:22:02

我有一个类

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

我的所有实体都是从中继承的。在employee实体的情况下,不可能有两个员工拥有相同的护照sn和其他特定身份的文件。

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

映射中有任何约束吗?

谢谢!

NHibernate.记录唯一性

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

如果您正在使用Fluent:

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

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