W mojej bazie danych znajdują się tabele Przypisanie i Miejsce pracy, koncepcyjnie, każde zadanie ma miejsce w dokładnie jednym miejscu pracy. Przypisanie tabela zawiera kolumnę Workplace, który jest kluczem obcym przedstawieniu WorkplaceName kolumnę w Workplace tabeli.Odwzorowywanie klucza obcego na coś innego niż klucz podstawowy
Jest to schemat:
table Workplace (
ID int primary key,
WorkplaceName int
)
table Assignment (
Workplace int
)
A mój mapowania:
class Workplace
{
public virtual int ID { get; set; }
public virtual int WorkplaceName { get; set; }
}
class Assignment
{
public virtual Workplace { get; set; }
}
class AssignmentMap : ClassMap<Assignment>
{
public AssignmentMap()
{
References(a => a.Workplace);
}
}
W czasie wykonywania otrzymuję wyjątek
No wiersz z danym identyfikatorem [MyProject.Workplace # 2001]
Wydaje się, że problem polega na tym, że FH szuka wartości Właściwość Przypisanie.Workplace w kolumnie Workplace.ID, klucz podstawowy tabeli; poprawnym miejscem będzie kolumna Workplace.WorkplaceName. Próbowałem użyć metody ForeignName
, myśląc, że mogę określić w ten sposób WorkplaceName. Jak mogę powiedzieć FH, jak dołączyć do właściwych kolumn?
Próbowałem tego; to nie zmienia wyniku. Wierzę, że metoda 'Column' służy do określenia lokalnej nazwy kolumny, tak samo jak drugi argument do' References' - jednak mógłbym się mylić. – waldrumpus