以下は、外部キー関係を定義しようとしている2つの部分的なテーブルです。
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; }
}
この例では、関連する情報、フィールド、ナビゲーションなどを除くすべてを削除しました。うまくいけば、あまり多くはありません。
PatGUID
フィールドを持つPatientテーブルへのFKを持つテーブルフォームがありますPatGUID
。患者テーブルにはPatID
intKEYフィールドがあります。
コードファーストエンティティモデルのフィールドの名前を変更する必要があります。変更が必要なこの例の関連フィールドはPatGUID
に変更されていPatientGUID
ます。
私が抱えている問題は、注釈または流暢さのいずれかを使用してこの外部キーを定義しようとすることです。
したがって、必要な最終結果は次のとおりです。
主キーテーブル:患者、フィールド:
PatGUID
(PatientGUIDに名前が変更されました)外部キーテーブル:フォーム、フィールド:
PatGUID
(PatientGUIDに名前が変更されました)
これは大きな問題になるとは思われませPatient.PatGUID
んが、主キーではないこととPatGUID
フィールドの名前が変更されていることの組み合わせPatientGUID
により、WCFデータサービスが適切な参照を使用して参照を適切に作成できず、適切な選択/結合ができませんでしたの:
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]