2011-05-17 72 views
1

我有2个表。例如:其中一个是存储用户,另一个存储订单。包含UserId作为外键的订单表。我正在使用Linq 2 Sql进行数据访问操作。如果用户已经存在于数据库中,我想插入一个订单而不插入用户行。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在用户表中定义一个名为SocialSourceId列唯一键约束。它不是主键。

回答

2

将新订单添加到现有用户的Orders集合中。

更新:
我建议你在尝试插入之前先检查用户。我想,您尝试添加的用户仍然在您的上下文中,并在您下次拨打SubmitChanges时再次提交。

+0

它仍然说:违反UNIQUE KEY约束'UserUniqueness'。不能在对象'dbo.User'中插入重复键。用户表具有唯一的密钥约束 – anilca 2011-05-17 11:11:35

+1

用户在做什么?请编辑您的问题并提供一些代码。 – 2011-05-17 11:16:15

+0

我编辑了我的问题。感谢您的关注 – anilca 2011-05-17 11:24:04