【问题标题】:NHibernate. Records uniqueness休眠。记录唯一性
【发布时间】:2012-02-01 13:46:26
【问题描述】:

我有课

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

我所有的实体都继承自它。在employee 实体的情况下,不可能有两名员工拥有相同的护照号码和其他特定于身份的文件。

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

映射有什么限制吗?

谢谢!

【问题讨论】:

    标签: c# database nhibernate entity unique


    【解决方案1】:

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

    如果您使用 Fluent:

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

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

    【讨论】:

    • 好的。据我了解,普通的xml 映射会给出相同的结果。所以我应该把约束放在一个属性上。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多