【问题标题】:Linq 2 Sql insert without relationshipLinq 2 Sql插入没有关系
【发布时间】: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 的列定义的唯一键约束。而且它不是主键。

【问题讨论】:

    标签: c# database linq-to-sql orm


    【解决方案1】:

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

    更新:
    我建议,您在尝试插入之前先检查用户。我想,您尝试以某种方式添加的用户仍然在您的上下文中,并且在您下次调用 SubmitChanges 时再次提交。

    【讨论】:

    • 它仍然显示:违反 UNIQUE KEY 约束“UserUniqueness”。无法在对象“dbo.User”中插入重复键。用户表有唯一键约束
    • 你对用户做了什么?请编辑您的问题并提供一些代码。
    • 这没有任何帮助,抱歉。我建议,您在尝试插入之前先检查用户。我想,您尝试以某种方式添加的用户仍然在您的上下文中,并且在您下次调用 SubmitChanges 时再次提交。
    • 这就是问题所在!你说的对!非常感谢!。我会接受你的回答,你可能想更新它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多