1

Entity-framework での関係に問題があります

ここに私の問題があります:

ユーザーとグループの2つのクラスがあります

  • グループには 1 人の所有者 (ユーザー) が必要です
  • グループには 0 または複数のメンバー (ユーザー) を含めることができます
  • ユーザーは、0 または複数のグループの所有者になることができます

ユーザー.cs:

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


    [Display(Name="Firstname")]
    public string firstname { get; set; }


    [Display(Name = "Lastname")]
    public string lastname { get; set; }


    [Display(Name = "Email")]
    public string email { get; set; }

}

Group.cs :

    public class Group
{
    [Key]
    public int idGroup { get; set; }
    public string name { get; set; } 
    public User owner { get; set; }
    public List<User> members { get; set; }

    public Group()
    {
        members = new List<User>();
    }

}

そして、ここに挿入グループ機能があります:

        [HttpPost]
    public ActionResult Create(Group group)
    {
        if (ModelState.IsValid)
        {
            group.owner = db.Users.Attach((User)Session["user"]);
//Current user stored in session and already presents in User table
            db.Groups.Add(group);
            db.SaveChanges();

            return RedirectToAction("Index", "Home");
        }
        return View(group);
    }

問題は :

  • 挿入関数にデバッグを実行すると、「所有者」属性が正しく設定されます (db.savechanges で)。
  • しかし、その後、db (Group group = db.Groups.Find(id);) でグループを選択すると、「所有者」パラメーターが null になります。

どんな助けでも本当にありがたいです。

どうもありがとう

4

2 に答える 2

1

これを試して:

public class Group
{
    [Key]
    public int idGroup { get; set; }
    public string name { get; set; } 
    public virtual User owner { get; set; }
    public virtual ICollection<User> members { get; set; }

    public Group()
    {
        members = new List<User>();
    }
}
于 2012-11-17T17:28:14.197 に答える
0

これはあなたの問題を解決するかもしれません Group group = db.Groups.Find(id).Include("owner");

于 2012-11-17T17:21:43.550 に答える