简单映射流畅的nhibernate

时间:2011-10-31 13:03:50

标签: fluent-nhibernate

我有一个类客户端,它具有狗的属性

public class ClientsMap : ClassMap<Clients>
{
    public ClientsMap()
    {           
        Id(x => x.ClientID);
        HasMany(x => x.Dogs);
    }
}

public class Client
{

    public virtual IList<Dog> Dogs { get; set; }
    public virtual int ClientID { get; set; }
}

和一类引用客户的狗。

public class Dog
{
    public virtual Clients Client { get; private set; }
    public virtual int Id { get; set; }
}

public class DogMap : ClassMap<Dog>
{
    public DogMap()
    {
        Table("Pooches");
        Id(x => x.Id);

        References(x => x.Client).Column("ClientId");
    }

}

因为我正在映射到现有数据库,所以我无法更改字段名称。

当我尝试返回狗集合时,我在带有SQL

的client_id上收到了无效的列错误
SELECT 
dogs0_.Clients_id as Clients3_1_, 
dogs0_.Id as Id1_, 
dogs0_.Id as Id1_0_, 
dogs0_.ClientId as ClientId1_0_ 
FROM 
pooches dogs0_ 

如何在cliet_id上使用clientid。我以为我在狗地图中指定了这个。

1 个答案:

答案 0 :(得分:1)

您还应该在一对多关系中指定列名。

HasMany(x => x.Dogs)
    .KeyColumn("ClientId");