Trong cơ sở dữ liệu của tôi có các bảng Bài tập và Nơi làm việc, về mặt khái niệm, mọi bài tập diễn ra tại một nơi làm việc chính xác. Các Phân bảng chứa một cột Workplace, đó là khóa ngoại tham khảo WorkplaceName cột Workplace của bảng.Ánh xạ khóa ngoài cho một khóa khác ngoài khóa chính
Đây là schema:
table Workplace (
ID int primary key,
WorkplaceName int
)
table Assignment (
Workplace int
)
Và lập bản đồ của tôi:
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);
}
}
Khi chạy tôi nhận được ngoại lệ
Không liên tiếp với các định danh cho tồn tại [MyProject.Workplace # 2001]
Vấn đề ở đây dường như là FH tìm kiếm giá trị của tài sản Bài tập.Workplace trong cột Nơi làm việc.ID, khóa chính của bảng; địa điểm chính xác sẽ là cột Nơi làm việc.WorkplaceName. Tôi đã cố gắng sử dụng phương pháp ForeignName
, nghĩ rằng tôi có thể chỉ định WorkplaceName theo cách này. Làm thế nào tôi có thể cho FH biết cách tham gia các cột chính xác?
Tôi đã thử điều đó; nó không thay đổi kết quả. Tôi tin rằng phương pháp 'Cột' được sử dụng để chỉ định tên cột cục bộ, giống như đối số thứ hai cho' Tham chiếu' - tôi có thể sai về điều đó. – waldrumpus