Próbuję uzyskać pojedynczą właściwość z połączonego stołu, w którym nie-PK w moim głównym stole jest połączone z PK zagranicznego stołu. Poniżej znajduje się uproszczony przykładem tego, co staram się osiągnąć (Nie chcę odwołać podmiotu zagranicznego):Fluent NHibernate join nie używając klucza podstawowego
tabelach:
CREATE TABLE Status
(
Id int,
Body text,
CategoryId int
)
CREATE TABLE Category
(
Id int,
Name text
)
SQL do generowania:
SELECT Id, Body, CategoryId, Category.Name AS CategoryName
FROM Status
LEFT JOIN Category ON Category.Id = Status.CategoryId
Próbuję odwzorować łączenie w ten sposób w StatusMap, ale wydaje się być łączenia na dwóch podstawowych kluczy (gdzie Status.Id = Category.Id):
Join("Category" m =>
{
m.Optional();
m.KeyColumn("CategoryId");
m.Map(x => x.CategoryName, "Name");
});
Nie mogę również dowiedzieć się, jak to zrobić. Jeśli szukasz obejścia, możesz zamiast tego zastąpić widok, co zwykle robię dla tego typu rzeczy. – cbp
To właśnie używam obecnie jako obejście, cieszę się, że nie jestem jedyny :) – jwarzech