Ich versuche, eine einzelne Eigenschaft aus einer Join-Tabelle zu erhalten, wo ein Nicht-PK in meiner Haupttabelle mit dem PK der Fremdtabelle verbunden ist. Unten ist ein vereinfachend Beispiel dafür, was ich zu erreichen versuchen (Ich will nicht die ausländische Gesellschaft verweisen):Fließende NHibernate Join verwendet keinen Primärschlüssel
Tables:
CREATE TABLE Status
(
Id int,
Body text,
CategoryId int
)
CREATE TABLE Category
(
Id int,
Name text
)
SQL generieren:
SELECT Id, Body, CategoryId, Category.Name AS CategoryName
FROM Status
LEFT JOIN Category ON Category.Id = Status.CategoryId
Ich versuche, den Join wie folgt in der StatusMap zuzuordnen es scheint, auf den beiden Primärschlüssel (wobei Status.Id = Category.Id) Beitritt zu:
Join("Category" m =>
{
m.Optional();
m.KeyColumn("CategoryId");
m.Map(x => x.CategoryName, "Name");
});
Ich kann nicht herausfinden, wie dies auch zu tun ist. Wenn Sie nach einem Workaround suchen, können Sie möglicherweise stattdessen eine Ansicht zuordnen, was ich normalerweise für diese Art von Sache tue. – cbp
Das ist, was ich derzeit als Workaround verwende, froh, dass ich nicht der einzige bin :) – jwarzech