3

これに関連してここでいくつかの質問を見つけましたが、まだ十分ではありません。2 つ目の UserProfile プロパティを既存の CourseRegistration クラスに追加しようとしています。移行を実行しようとすると、「ALTER TABLE ステートメントが FOREIGN KEY 制約 "FK_dbo.CourseRegistrations_dbo.UserProfile_InstructorId" と競合しています」というメッセージが表示されます

流暢な設定で解決できると思ったのですが、効果がありませんでした。私が読んだことに基づいて、問題はこれを許可しない既存のデータがあることだと思います。

質問 1: 何について不平を言っているのか完全には理解できません。誰かが光を当てることができれば、よりよく理解したいと思います。質問 2: テーブルを削除するか、データを削除する以外に回避策はありますか? 今回はそれでかまいませんが、それができない状況もあると思います。

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
}

public class CourseRegistration
{
    [Key]
    public int RegistrationId { get; set; }
    public int UserId { get; set; }
    public int? InstructorId { get; set; }

    public virtual UserProfile user { get; set; }
    public virtual UserProfile Instructor { get; set; }
}

ありがとう、

ジョエル

4

1 に答える 1

1

これを見て、これを試してください:

public class CourseRegistration
{
   [Key]
   public int RegistrationId { get; set; }    
   public virtual UserProfile user { get; set; }
   [ForeignKey("InstructorId")]
   public virtual UserProfile Instructor { get; set; }
}
于 2013-07-27T16:28:20.530 に答える