gpt4 book ai didi

c# - 使用流利的 NHibernate 映射一个只读的 sql View

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:15 24 4
gpt4 key购买 nike

我正在尝试让 Fluent Nhibernate 自动映射没有指定主键或复合键的只读 View 。这似乎是可能的,因为 ClassMap 的 API 文档公开了 Id() 的默认构造函数。

http://fluentnhibernate.org/api/FluentNHibernate.Mapping/ClassMap%601.htm

它说

IdentityPart Id()创建一个在域对象中没有相应属性或在数据库中没有列的 Id。这主要用于只读访问和/或 View 。默认为带有“增量”生成器的 int 标识。

我试图覆盖对应于我的 View 的实体的映射,并删除了指定 Id 字段名称的主键约定。它向 View 上的查询添加一个 id 列,但由于没有这样的列而失败。

我正试图在我的 View 中删除假主键,因为我认为应该有更好的方法来做到这一点。

这是我正在使用的覆盖片段

public class PersonMap: IAutoMappingOverride<Person>
{
public void Override(AutoMapping<Person> mapping)
{
mapping.Id();
}
}

为什么这行不通?

最佳答案

解决这个问题的方法通常是将任意属性分配给 id 并由 assigned 生成。这与做 Map 本质上是一样的。

public class ItemViewMap : IAutoMappingOverride<ItemView>
{
public void Override(AutoMapping<ItemView> mapping)
{
mapping.Id(x => x.Column).GeneratedBy.Assigned();
}
}

关于c# - 使用流利的 NHibernate 映射一个只读的 sql View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com