如何使用Fluent Nhibernate在没有唯一标识列的情况下映射视图
我在现有数据库中有只读视图,我想用FHN获取它们。我尝试通过以下方式映射它:如何使用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 =>
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?