gpt4 book ai didi

c# - 我如何使用 NHibernate Mapping.ByCode 在非主键字段上加入表?

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

我有一个员工表:

Employee
{
Name
EmployeeId -pk
PositionId -fk
}

positionId映射到位置表:

Position
{
PositionId -pk
ReportsToId
PositionName
PositionDescription
}

ReportsToId 字段是该职位经理的职位 ID。

我想选择一名员工、他们的职位和他们的经理详细信息。

这将如何使用 NHibernate 的 Mapping.ByCode 来完成。

ReportsToId 字段不是关键字段。从我在网上阅读的内容来看,这似乎会影响映射...

最佳答案

这种情况下的映射将是 5.1.10. many-to-one具有称为 property-ref 的功能:

<many-to-one
...
property-ref="PropertyNameFromAssociatedClass" (7)

(7) property-ref: (optional) The name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used.

因此,Position 类应该有 ID 和属性 ReportsToId

public virtual int ID          { get; set; }
public virtual int ReportsToId { get; set; }

Employee C# 类将具有此属性:

public virtual Position ManagerPosition { get; set; }

Employee 的属性 ManagerPosition 的映射将是(参见:Adam Bar, Mapping-by-Code - ManyToOne)

ManyToOne(x => x.ManagerPosition , m =>
{
...
m.Column("PositionId") // column in the Employee table
m.PropertyRef(propertyReferencedName) // the Property/column in the Position table

关于c# - 我如何使用 NHibernate Mapping.ByCode 在非主键字段上加入表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22900737/

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