流畅的NHibernate:如何映射两个非键列

时间:2013-10-04 17:11:38

标签: nhibernate

如何使用两列不是键的对象将对象映射到另一对象内?

public class Car
{
    public virtual int Id { get; set; }
    public virtual int AccountId { get; set; }
}

public class UserAccount
{
    public virtual int Id { get; set; }
    public virtual int UserId{ get; set; }
    public virtual int AccountId { get; set; }
}

public class User
{
    public virtual int Id { get; set; }
    public virtual int Name { get; set; }
}

假设我想让所有拥有User.Name为“joe”的汽车。我如何用流利的nhibernate映射/查询这些?

    public Car()
    {
        Table("Car");
        Id(x => x.Id).Column("ID").GeneratedBy.Native();
        Map(x => x.AccountId);
        References(x => x.Account); // ?? needs to map accountid with the Account.Id...
    }

1 个答案:

答案 0 :(得分:0)

如果要映射引用,则需要类型,而不是键。

public class Car
{
    public virtual int Id { get; set; }
    public virtual UserAccount Account { get; set; }
}

然后你会像这样映射它

public Car()
{
    Table("Car");
    Id(x => x.Id).Column("ID").GeneratedBy.Native();
    References(x => x.Account, "AccountId");
}