Linq 2 Sql插入没有关系
Posted
技术标签:
【中文标题】Linq 2 Sql插入没有关系【英文标题】:Linq 2 Sql insert without relationship 【发布时间】:2011-05-17 10:49:30 【问题描述】:我有 2 张桌子。 eg:其中一个是存储用户,另一个是存储订单。包含 UserId 作为外键的 Orders 表。我正在使用 Linq 2 Sql 进行数据访问操作。如果用户已经存在于数据库中,我想插入一个订单而不插入用户行。
我该怎么做?
提前致谢,
编辑:这是我遇到问题的代码:
try
context.SocialEntities.InsertOnSubmit(entity);
context.SubmitChanges();
catch (Exception ex)
if (ex.Message.Contains("UserUniqueness"))
User user = context.Users.Where(u => u.SourceUserID == entity.User.SourceUserID).FirstOrDefault();
if (user != null)
user.SocialEntities.Add(entity);
context.SubmitChanges();
UserUniqueness 是在 User 表中为名为 SocialSourceId 的列定义的唯一键约束。而且它不是主键。
【问题讨论】:
【参考方案1】:将新订单添加到现有用户的Orders
集合中。
更新:
我建议,您在尝试插入之前先检查用户。我想,您尝试以某种方式添加的用户仍然在您的上下文中,并且在您下次调用 SubmitChanges
时再次提交。
【讨论】:
它仍然显示:违反 UNIQUE KEY 约束“UserUniqueness”。无法在对象“dbo.User”中插入重复键。用户表有唯一键约束 你对用户做了什么?请编辑您的问题并提供一些代码。 这没有任何帮助,抱歉。我建议,您在尝试插入之前先检查用户。我想,您尝试以某种方式添加的用户仍然在您的上下文中,并且在您下次调用SubmitChanges
时再次提交。
这就是问题所在!你说的对!非常感谢!。我会接受你的回答,你可能想更新它!以上是关于Linq 2 Sql插入没有关系的主要内容,如果未能解决你的问题,请参考以下文章