代码之家  ›  专栏  ›  技术社区  ›  blindmeis

如何用Fluent Nhibernate映射一个没有唯一标识列的视图

  •  5
  • blindmeis  · 技术社区  · 14 年前

    我有一个现有的数据库中的只读视图,我想得到他们与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);
        }
    }
    

    但我有个错误: [选择此\uID为id3 \u 0\uZ,此\uZ为Hkz3 \u 0\uZ,此\uKapitel为Kapitel3 \u 0\uZ,此\uU.Titel为Titel3 \u 0\uZ,此\uPZ为Hhpz3 \u 0\uST this\uZ]

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

    2 回复  |  直到 14 年前
        1
  •  7
  •   harriyott Erik Funkenbusch    12 年前

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

    可以应用 IResultTransformer 到本机sql查询。允许它返回非托管实体。

    sess.CreateSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
        .SetResultTransformer(Transformers.AliasToBean(typeof(CatDTO)))
    

    SQL查询字符串 结果转换器

    上面的查询将返回 CatDTO 已经实例化并注入 NAME BIRTHNAME 到相应的属性或字段中。”

        2
  •  1
  •   Community CDub    8 年前
    推荐文章