当我希望它附加时,实体正在插入

本文关键字:实体 插入 我希望 | 更新日期: 2023-09-27 18:34:03

我有两个类:

public class PartDefinition
{
    public int Id { get; set; }
    [Required]
    [MaxLength(10)]
    public string PartNumber { get; set; }
    [Required]
    public virtual Module Module { get; set; }
}
public class Module
{
    public int Id { get; set; }
    [Required]
    [MaxLength(10)]
    public string Name { get; set; }
}

然后我尝试执行此操作:

PartDefinition part = new PartDefinition(partNumber, module);
context.PartDefinitions.Add(part);
context.SaveChanges();

我要传递给新部件定义的模块已存在于数据库中。但是,当我保存新的部件定义而不是将当前模块添加为外键时,它会插入一个全新的模块。

我该如何更改此设置?

当我希望它附加时,实体正在插入

由于您没有任何表示数据库中主键的 [Key] 属性;因此每次都会添加一个新模块。尝试使用 [Key] 属性标记 Id 属性。还要尝试在获取模块和插入部分时使用相同的上下文实例。

您确定模块对象的 ID 设置为值吗? 如果为零,则实体框架会将其视为新关系。