0

userstats テーブルもあります。1 対 1 の関係が必要ですが、ユーザーを登録しようとすると上記のエラーが発生します。助けてくれてありがとう!

ユーザー表:

     public class User
        {
            [Key]
            public int ID { get; set; }

            public int UserStatsID { get; set; }
            public virtual UserStats UserStats { get; set; }

           }

ユーザー統計表

  [Key]
    public int ID { get; set; }

    public int UserID { get; set;}
    [Required]
    public User User { get; set; }        

RegisterDetailController

[HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(User user)
    {
        if (ModelState.IsValid)
        {
            db.Users.Add(user);
            db.SaveChanges();
            if (user.Gender == Gender.Male )
            {
                return RedirectToAction("RegisterMale", "RegisterStats", new {id = user.ID });
            }
            else
            {
                return RedirectToAction("RegisterFemale", "RegisterStats", new { id = user.ID });

            }
        }

        return View(user);
    }
4

2 に答える 2

2

挿入は一度に 1 つずつ実行する必要があり、それを行うと制約に違反するため、完全に外部キーを使用して真の 1:1 の関係を強制することはできません。

代わりに、関係を 1:0 にする必要があります。UserStatsIDint?代わりに を作成してこれを行いintます。

于 2013-09-03T16:48:57.120 に答える