我正在尝试在我的上下文中添加一个新实体:
article.Id = 1;
var rede = from r in mycontext.Redevable.AsNoTracking()
where r.Matricule == "0001414"
select r;
article.Redevable = rede.First<Redevable>();
...
mycontext.Article.Add(article);
mycontext.SaveChanges();
我得到一个DbEntityValidationException,表示Redevable是必需的,因为属性“Redevable”是标记为Required。
如果我删除“AsNoTracking”但效果非常糟糕,它可以正常工作。
你能帮帮我吗?
提前致谢。
答案 0 :(得分:1)
您只能使用以下ID创建Fk属性:
public int RedevableId { get; set; }
public Redevable Redevable{ get; set; }
然后从Redevable实例设置它:
article.RedevableId = rede.First<Redevable>().Id;
然后坚持你的改变:
mycontext.Article.Add(article);
mycontext.SaveChanges();
答案 1 :(得分:0)
AsNoTracking()意味着您无法更新这些实体,而无需将它们重新连接到跟踪图。有关详细信息see
// Attaches the entity and then save
context.Entry(article).State = EntityState.Modified;
context.SaveChanges();