次は、外部キーの関係を定義しようとしている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
の患者テーブルへのFKがPatGUID
のテーブルフォームがあります。 Patientテーブルには、PatID
int KEYフィールドがあります。
コードの最初のエンティティモデルのフィールドの名前を変更する必要があります。この例の関連フィールドを変更する必要がありますPatGUID
はPatientGUID
に変更されています。
私が抱えている困難は、アノテーションまたは流暢のいずれかを使用してこの外部キーを定義しようとしていることです。
だから私は必要な最終的な結果は次のとおりです。
プライマリキーテーブル:患者、フィールド:
PatGUID
(PatientGUID改称)外部キーテーブル:フォーム、フィールド:
PatGUID
(PatientGUIDに改名)
これは大きな問題を引き起こすようではないが、Patient.PatGUID
がプライマリキーではなく、フィールドの名前がPatientGUID
に変更されているため、WCFデータサービスが適切な参照を持つ参照を適切に作成できなかった適切な選択/の参加:プリンシパルのキーが主キーが、ユニークキー制約を持ついくつかの他の列ではない場合
SELECT … FROM [dbo].[Form] AS [Extent1]
INNER JOIN [dbo].[Patient] AS [Extent2] ON [Extent1].[PatGUID] = [Extent2].[PatGUID]
私は聞きたいとは思っていませんでしたが、なぜこれを動作させることができなかったのかについての決定的な答えと、別の解決方法が必要であることを知っています。 – user2144404