如何加入NHibernate / Fluent?

时间:2014-05-27 13:24:58

标签: c# nhibernate fluent-nhibernate

这很简单,我打赌这必须是一个重复的问题。

我有DogCat,它们映射到表格:

class Dog
{
    public virtual long Id;
    public virtual long catId;
}

class Cat
{
    public virtual long Id;
    public virtual string Name;
}

我想要的是获得每只狗的名字,而不是id:

class DogWithName
{
    public virtual long Id;
    public virtual string CatName;
}

因此DogWithName应该是DogCat加入查询的结果。我考虑为DogWithName创建映射,但这意味着将在模式中创建DogWithName表。

我不希望这样。我只想要一个动态查询,它返回每个带有引用Cat名称的Dog。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

var result = from d in Session.Query<Dogs>() select new DogWithName { Id = d.Id, CatName = d.Cat.Name }

你必须映射你的课程。映射是定义表连接方式的原因。

我也将你的Dog课程改为

public class Dog
{
    public virtual long Id { get; set; }
    public virtual Cat Cat { get; set; }
}

然后您需要将Cat映射为ManyToOne关系。您还没有提供任何映射?