如何使用Fluent Nhibernate在没有唯一标识列的情况下映射视图

如何使用Fluent Nhibernate在没有唯一标识列的情况下映射视图,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我在现有数据库中有只读视图,我想用FHN获取它们。我尝试通过以下方式映射它: public class HhstMap : ClassMap<Hhst> { public HhstMap() { Table("HHST"); ReadOnly(); Id(); Map(x => x.Hkz); Map(x => x.Kapitel); Map(x =>

我在现有数据库中有只读视图,我想用FHN获取它们。我尝试通过以下方式映射它:

public class HhstMap : ClassMap<Hhst>
{
    public HhstMap()
    {
        Table("HHST");

        ReadOnly();

        Id();

        Map(x => x.Hkz);
        Map(x => x.Kapitel);
        Map(x => x.Titel);
        Map(x => x.Apl);
        Map(x => x.Hhpz);
    }
}
公共类HhstMap:ClassMap
{
公共HhstMap()
{
表(“HHST”);
只读();
Id();
地图(x=>x.Hkz);
Map(x=>x.Kapitel);
Map(x=>x.Titel);
Map(x=>x.Apl);
Map(x=>x.Hhpz);
}
}
但我有一个错误: 无法执行查询 [选择此id为id3_0_,此_.Hkz为Hkz3_0_,此_.Kapitel为Kapitel3_0_,此_.Titel为Titel3_0_,此_.Apl为Apl3_0_,此_.Hhpz为Hhpz3_0_,来自HHST本_]

这没关系,因为没有ID列,但是我如何在没有ID的情况下使用Fluent进行映射呢?

也许这可以帮助您:

编辑:
此外,您可以使用,或者您可能需要Fluent Nhibernate?

作为值对象(非托管实体)而不是实体检索记录

sess.CreateSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
    .SetResultTransformer(Transformers.AliasToBean(typeof(CatDTO)))
“14.1.5.退回非管理实体 可以对本机sql查询应用
IResultTransformer
。允许它返回非托管实体

sess.CreateSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
    .SetResultTransformer(Transformers.AliasToBean(typeof(CatDTO)))
此查询指定: SQL查询字符串 结果转换器


上面的查询将返回一个已实例化的
CatDTO
列表,并将
NAME
BIRTHNAME
的值注入其相应的属性或字段中。”

它对我不起作用。具有相同键的所有对象实际上都是从DBI检索到的第一个对象的副本。我添加了两个您可能希望尝试的额外链接。我是否应该在与您的解决方案的映射中使用compositeid?