gpt4 book ai didi

c# - EntityFramework ORM 错误插入

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:38 24 4
gpt4 key购买 nike

抱歉,我是初学者。

我有两个类:用户和组链接在一起(组类有一个用户类型属性)

这是 User.cs :

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

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

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

这是 Group.cs :

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

这里是插入

private myContext db = new myContext();
[HttpPost]
public ActionResult Create(Group group)
{
group.owner = (User)Session["user"];
if (ModelState.IsValid)
{
db.Groups.Add(group);
db.SaveChanges();
return RedirectToAction("Index","Home");
}

return View(group);
}
//Session["user"] contains an User type object (which is already in database)

问题是:当我添加一个新组时,它会自动将一个新用户插入到数据库中,而不是仅仅插入相应的组。

示例:我是“user1”(因此“user1”存在于 User 表中)并且我想创建“group1”组。我将我所在的用户与组类的“所有者”属性相关联。

group1 将被插入到 Group 表中,但 user1 也将被插入到 User 表中。这将导致重复内容

我不知道如何避免这种情况......

如有任何帮助,我们将不胜感激。

最佳答案

您必须使用 Attach 将现有的 User 附加到您的 DbContext 实例.这将阻止 EF 创建对象的副本。

关于c# - EntityFramework ORM 错误插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com