EF6 从另一个窗体插入数据后更新外键



我正在尝试在插入不同形式的记录后更新表的外键。

项目

ProjectID    CommentID

注释

CommentID   Date    Comment

首先,我创建Project并为CommentID分配一个NULL值,因为还没有注释。目前为止,一切都好。

然后,在某个时刻,我需要为我的项目添加注释。我可以成功添加注释,但无法在相关Project表中分配CommentID

这就是我尝试的方式(没有成功(:

MyEntities ctx = new MyEntities();
tblComents coment = new tblComments()
{
Date = DateComent.Value,
Comment = TxtComment.Text.Trim()
};
ctx.tblComments.Add(comment);
var projet = new tblProject { tblComments = comment };
ctx.SaveChanges();

像这样,我创建了注释,但外键从未在表Projects中分配。

有什么帮助吗?

谢谢

您正在将注释添加到与数据库无关的new项目中:

tblComents coment = new tblComents()
{
Date = DateComent.Value,
Coment = TxtComent.Text.Trim()
};
tblProject project = ctx.tblProject(x=> x.Id == someid); // find the project you want
if(project != null) project.tblComents.Add(coment);
ctx.SaveChanges();

您应该从数据库中获取一个项目(上面的代码(,然后将注释添加到该项目,或者将项目添加到数据库而不是注释(下面的代码(:

tblComents coment = new tblComents()
{
Date = DateComent.Value,
Coment = TxtComent.Text.Trim()
};
tblProject project = new tblProject();
ctx.tblProjects.Add(project);
if(project != null) project.tblComents.Add(coment);
ctx.SaveChanges();

最新更新