私のデータベースにはAssignmentとWorkplaceというテーブルがあり、概念的には、すべての割り当ては正確に 1 つの職場で行われます。Assignmentテーブルには、 WorkplaceテーブルのWorkplaceName列を参照する外部キーである列Workplaceが含まれています。
これはスキーマです:
table Workplace (
ID int primary key,
WorkplaceName int
)
table Assignment (
Workplace int
)
そして私のマッピング:
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);
}
}
実行時に例外が発生します
指定された識別子を持つ行が存在しません[MyProject.Workplace#2001]
ここでの問題は、FH がテーブルの主キーであるWorkplace.ID列のAssignment.Workplaceプロパティの値を探すことです。正しい場所はWorkplace.WorkplaceName列です。この方法でWorkplaceNameを指定できると考えて、メソッドを使用しようとしました。正しい列を結合する方法を FH に伝えるにはどうすればよいですか?ForeignName