0

Code First と Code Migrations に問題があります。

User クラスと UserData クラス (姓名などのオプション情報を含む) がありますが、'Add-Migration' または 'Update-Database' コマンドを実行しようとすると、いくつかのエラーが発生します。

User クラスを作成しました。

public class User
{
    public int ID { get; set; }
    public string UserName { get; set; }
    public string EmailAddress { get; set; }
    public DateTime DateOfBirth { get; set; }

    public UserData UserData { get; set; }
    public int UserDataID { get; set; }
}

および UserData クラス:

public class UserData
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
}

このセットアップでは、次のエラーが表示されます。

テーブル 'Users' に複数の ID 列が指定されています。テーブルごとに 1 つの ID 列のみが許可されます。

「Update-Database」を実行しようとしたとき (「Add-Migration」コマンドは正常に実行されます)。

既に UserData.cs に と を追加しようとしpublic User User { get; set; }ましpublic int UserID { get; set; }たが、「Add-Migration」コマンドでエラーが発生します。

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

これを修正する方法はありますか?

前もって感謝します。

4

1 に答える 1