Sau đây là hai bảng một phần trong đó tôi đang cố gắng xác định mối quan hệ khóa ngoại.Tạo mối quan hệ thực thể với các trường được đổi tên và khóa không chính trong bảng chính
public class Form
{
[Key, Column("FormID")]
public System.Guid FormGUID { get; set; }
[Column("PatGUID")]
public Nullable<System.Guid> PatientGUID { get; set; }
}
public class Patient
{
[Column("PatGUID")]
public System.Guid PatientGUID { get; set; }
[Key, Column("PatID")]
public int PatientID { get; set; }
}
tôi đã loại bỏ tất cả nhưng thông tin, lĩnh vực, điều hướng có liên quan, vv cho ví dụ này; hy vọng không quá nhiều.
Chúng tôi có Biểu mẫu bảng, có FK là PatGUID
đối với bảng Bệnh nhân có trường PatGUID
. Bảng bệnh nhân có trường PatID
int KEY.
Chúng tôi có các yêu cầu để đổi tên trường của chúng tôi cho các mô hình thực thể mã đầu tiên của chúng tôi; các trường có liên quan trong ví dụ này cần thay đổi là PatGUID
được thay đổi thành PatientGUID
.
Khó khăn mà tôi đang gặp là cố gắng xác định khóa ngoại này bằng cách sử dụng chú thích hoặc thông thạo.
Vì vậy, kết quả cuối cùng tôi cần là:
Primary Key Bảng: Bệnh nhân, Field:
PatGUID
(đổi tên PatientGUID)Ngoại Bảng chính: Mẫu, Field:
PatGUID
(đổi tên thành PatientGUID)
Điều này dường như không phải là vấn đề lớn nhưng với sự kết hợp của Patient.PatGUID
không phải là khóa chính và các trường PatGUID
được đổi tên thành PatientGUID
đã không cho phép Dịch vụ Dữ liệu WCF tạo đúng tham chiếu với tham chiếu thích hợp như vậy lựa chọn/tham gia thích hợp của:
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]
Không chính xác những gì tôi muốn nghe nhưng ít nhất một câu trả lời dứt khoát về lý do tại sao tôi không thể làm việc này và biết rằng tôi cần phải đưa ra giải pháp thay thế. – user2144404