当我希望它附加时,实体正在插入
本文关键字:实体 插入 我希望 | 更新日期: 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 设置为值吗? 如果为零,则实体框架会将其视为新关系。