使用NHibernate Conformist映射将一个属性映射到两个表中的列

时间:2014-02-13 16:57:42

标签: nhibernate properties nhibernate-mapping mapping-by-code table-per-subclass

我有以下(简化)域名:

public abstract class User
{
    public virtual long UserId { get; set; }
    public virtual long TenantId { get; set; }
    ...
}

public class PersonUser : User
{
    public virtual string DomainName { get; set; }
    public virtual string Username { get; set; }
    public virtual string Password { get; set; }
}

public class ClientUser : User
{
    ...
}

我正在使用每类表映射策略,以便User数据存储在Users表中,PersonUser数据存储在Users_PersonUsers表中,ClientUser数据存储在Users_ClientUsers表中。我正在使用新的Conformist映射,它工作得很好!我没有遇到任何问题。

但是,我有一个新要求:我需要在数据库中创建一个唯一约束,以确保没有两个PersonUser可以具有相同的TenantIdDomainName和{ {1}}组合。除非Username具有Users_PersonUsers列,否则无法使用此约束。我不确定如何最好地解决这个问题。

我希望我能告诉NHibernate将属性映射到两个列 - 每个表中有一个 - 但似乎没有办法做到这一点。我错过了什么吗?这可能吗?还有更好的方法吗?

0 个答案:

没有答案