gpt4 book ai didi

c# - Fluent NHibernate 加入不使用主键

转载 作者:太空狗 更新时间:2023-10-29 20:32:16 24 4
gpt4 key购买 nike

我正在尝试从连接表中获取单个属性,其中我的主表中的非主键连接到外部表的主键。以下是我试图完成的过度简化示例(我不想引用外国实体):

表格:

CREATE TABLE Status
(
Id int,
Body text,
CategoryId int
)

CREATE TABLE Category
(
Id int,
Name text
)

要生成的 SQL:

SELECT Id, Body, CategoryId, Category.Name AS CategoryName
FROM Status
LEFT JOIN Category ON Category.Id = Status.CategoryId

我正在尝试在 StatusMap 中像这样映射联接,但它似乎是在两个主键上联接(其中 Status.Id = Category.Id):

Join("Category" m =>
{
m.Optional();
m.KeyColumn("CategoryId");
m.Map(x => x.CategoryName, "Name");
});

最佳答案

据我所知,使用 Fluent 解决此问题的唯一方法是像您当前所做的那样映射到 View 。 Join() 将始终映射到父表的主键。 KeyColumn 方法仅指定子表的键列,在您的例子中是类别表。

要使用上面的简化版本实现所需的 SQL,您可能需要使用 References 来定义状态和类别之间的多对一关系。

关于c# - Fluent NHibernate 加入不使用主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442611/

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