gpt4 book ai didi

c# - 你如何映射一个组件,它也是 NHibernate hbm xml 中的主键(或在 fluent-nhibernate 类映射中)?

转载 作者:行者123 更新时间:2023-11-30 15:50:33 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何将组件映射为 nhibernate 中的主键,如果可能的话,也可以在 fluent nhibernate 中进行映射。

有问题的组件是一组独特的 3d 坐标,这是对象:

public class SpaceLocation
{
public virtual SpaceCoordinate Coordinates { get; set; }
public virtual SpaceObject AtLocation { get; set; }
}

SpaceCoordinate 是一个结构体,定义如下:

public struct SpaceCoordinate
{
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
}

在 fluent nhibernate 中,为了使 SpaceCoordinate 成为一个组件,我会创建一个这样的映射类:

public class SpaceLocationMap : ClassMapWithGenerator<SpaceLocation>
{
public SpaceLocationMap()
{
References(x => x.AtLocation);
Component<SpaceCoordinate>(x => x.Coordinates, m =>
{
m.Map(x => x.x);
m.Map(x => x.y);
m.Map(x => x.z);
}).Unique();
}
}

但我想知道的是如何使 SpaceCoordinate 组件作为一个整体成为具有唯一约束的主键。我如何将其映射到 Nhibernate xml 或流畅的 nhibernate 类映射中?

最佳答案

我相信除非你在 NHibernate 主干上运行,否则你不能这样做。 componentunique 属性直到 2.0 发布后才添加;所以除非有办法解决这个问题,否则我认为这是不可能的。

您能否将字段映射为 composite-id相反?

关于c# - 你如何映射一个组件,它也是 NHibernate hbm xml 中的主键(或在 fluent-nhibernate 类映射中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/501507/

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