0

頭に浮かぶのは、次のようなことです。

public class UserProfile
{
    [Key]
    [Column(Order = 0)]
    [ForeignKey("User")]
    public Guid UserId { get; set; }

    public virtual User User { get; set; }

    // Additional user info
}

しかし、私はこのエラーを受け取ります:

\ tSystem.Data.Entity.Edm.EdmEntityType::EntityType'ユーザー'にキーが定義されていません。このEntityTypeのキーを定義します。\ tSystem.Data.Entity.Edm.EdmEntitySet:EntityType:EntitySet'Users'は、キーが定義されていないタイプ'User'に基づいています。

私が欠けている点は何ですか?SQLテーブル(コードファースト)に自動的に移行されるクラスを作成する方法はありませんか?

ありがとう!

4

1 に答える 1

0

主キーが不明な場合にのみ [Key] アノテーションが必要です。ただし、規則では、Id で終わるクラス名であり、User クラスに UserId プロパティが必要です。だから私はそれが次のようなものであるべきだと思います:

    public class UserProfile
    {
        [Key]
        public UserProfileId
        public Guid UserId { get; set; }
      [ForeignKey("UserId")]
        public virtual User User { get; set; }
        // Additional user info
    }

私が見逃しているポイントは何ですか?SQLテーブルに自動的に移行されるクラスを作成する方法はありませんか(Code First)?

はい、コードが作成されるクラスを使用する必要がある場合、またはスキャフォールディングを使用できます。現在、移行ツールを使用して、すべてのテーブルをすばやく作成しています。たとえば、移行ツールに関する MSDN の記事を参照してください。移行 に関するブログ

于 2012-09-03T20:00:55.260 に答える