这是我在应用程序中使用的架构:
我在数据库中已经存在用户时尝试插入帖子时收到DuplicateKeyException。我将帖子的用户设置为我从数据库中检索的实体,但是当我插入新帖子时,我得到了一个例外,说它的用户已经在使用。
这里是设置对现有用户实体的引用的代码:
private void setReferencedEntities(Post post)
{
User user = (from u in dataContext.Users
where u.id == post.CommonColumn.User1.id
select u).FirstOrDefault();
if (user != default(User))
{
post.CommonColumn.User1 = user;
}
}
上面的函数调用如下:
foreach (Post post in newPosts)
{
setReferencedEntities(post);
}
dataContext.Comments.InsertAllOnSubmit(newPosts);
dataContext.SubmitChanges();
编辑: 我还有这个问题,所以我想我会提供更多信息。 我有这个应用程序24/7在服务器上运行没有问题。当我从本地计算机上的数据库中删除所有内容并运行应用程序时,我没有任何问题。 当我从我的服务器数据库中复制所有数据并将其插入我的本地数据库时,会出现问题。尝试使用LINQ to SQL插入新Post时,我收到DuplicateKeyException。
此测试没有问题:
此测试不起作用:
答案 0 :(得分:0)
尝试再次插入帖子,尝试在评论对象上设置帖子ID。