我正在浏览一篇文章和撰写文章的记者的 XML 文件。当我们将文章添加到 _Data 我们的数据上下文中时,我们可能会遇到需要添加的记者,所以我们这样做:
newJourno = New journalist With {.name = strJournalist}
_Data.journalists.InsertOnSubmit(newJourno)
.articles_journalists.Add(New articles_journalist With {.id_journalist = newJourno.id, .id_article = .id})
然而,随后我们可能会再次遇到同一个记者,但当我们这样做时没有返回任何内容:
Dim journo = _Data.journalists.Where(Function(s) s.name = strJournalist).SingleOrDefault
所以它再次使用上面的代码再次插入同一个记者。
一旦我们所有的插入完成,我们就会做一个提交更改。在这一点上,它有一个头部适合:
INSERT 语句与 COLUMN FOREIGN KEY 约束“FK_articles_journalists_journalists”冲突。冲突发生在数据库'blah'、表'journalists'、列'id'中。该语句已终止。
通过查看 sql profiler 中生成的 sql,您可以看到它多次尝试添加一些记者,这将失败,因为名称必须不同。由于未更新该记者,随后试图插入这些记者的记录失败。
当然,如果我有一个记者收藏,添加一些,然后查看我的收藏,我应该看到所有这些,而不仅仅是原始的。我猜我可以通过提交更改来捏造它,但这似乎有点愚蠢。
提前致谢,
戴夫。