1

2 つの SQL テーブルがあります。


    class DiaryItem
    {
        private System.Guid Id;

        private string Name;
    }

    class DiaryActivityItem
    {
        private System.Guid Id;

        private int Minutes;
    }

DiaryActivityItem.Id は DiaryItem.Id への外部キーです。

そして、私は今このエラーメッセージを受け取ります:

タイプ 'MyProject.Models.DiaryActivityItem' と 'MyProject.Models.DiaryItem' の間の関連付けのプリンシパル エンドを特定できません。この関連付けのプリンシパル エンドは、リレーションシップ fluent API またはデータ アノテーションを使用して明示的に構成する必要があります。

[ForeignKey("Id")]今、これを修正する前に書く必要があることがわかりましたDiaryActivityItem.Idが、私の問題は、クラスが自動生成されることです。私はこのモデルDataClasses.dbmll を持っています。それをダブルクリックすると、ビジュアル モデル デザイナーが表示され、すべての変更 (およびその後の保存) によってファイル全体が書き換えられるため、この ForeignKey Annotation を手動で追加しても機能しません。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

次のようにコードを変更する必要があります。

public  class DiaryItem
{
    public System.Guid DiaryItemId;

    public string Name;

    [ForeignKey("DiaryActivityItem")] 
    public System.Guid DiaryActivityItemId;

    public DiaryActivityItem DiaryActivityItem;
}

public  class DiaryActivityItem
{
    public System.Guid DiaryActivityItemId;

    public int Minutes;
}
于 2013-06-03T09:57:30.667 に答える