如何在没有Fluent Nhibernate的唯一标识列的情况下映射VIEW

bli*_*eis 5 nhibernate nhibernate-mapping fluent-nhibernate

我在现有的数据库中只有VIEW,我想用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误:无法执行查询[SELECT this_.id as id3_0_,this_.Hkz as Hkz3_0_,this_.Kapitel as Kapitel3_0_,this_.Titel as Titel3_0_,this_.Apl as Apl3_0_,this_.Hhpz as Hhpz3_0_ FROM HHST this_ ]

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

J F*_*des 7

您可以将记录检索为值对象(非托管实体)而不是实体.

"14.1.5.返回非托管实体可以应用IResultTransformer本机SQL查询.允许它返回非托管实体.

sess.CreateSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
    .SetResultTransformer(Transformers.AliasToBean(typeof(CatDTO)))
Run Code Online (Sandbox Code Playgroud)

此查询指定:SQL查询字符串结果转换器

上述查询将返回的列表CatDTO已被实例化并注入的值NAMEBIRTHNAME到它的相应的属性或字段."