这很简单,我打赌这必须是一个重复的问题。
我有Dog
和Cat
,它们映射到表格:
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
应该是Dog
和Cat
加入查询的结果。我考虑为DogWithName
创建映射,但这意味着将在模式中创建DogWithName
表。
我不希望这样。我只想要一个动态查询,它返回每个带有引用Cat名称的Dog。我该如何解决这个问题?
答案 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关系。您还没有提供任何映射?