我有 2 个表。 eg:其中一个是存储Users,另一个是存储Orders。包含 UserId 作为外键的订单表。我正在使用 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 的列定义的唯一键约束。而且它不是主键。
最佳答案
将新订单添加到现有用户的 Orders
集合中。
更新:
我建议,在尝试插入用户之前先检查一下用户。我猜想,您尝试以某种方式添加的用户仍然在您的上下文中,并在您下次调用 SubmitChanges
时再次提交。
关于c# - Linq 2 Sql插入没有关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029740/