c# - Linq 2 Sql插入没有关系

标签 c# database linq-to-sql orm

我有 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/

相关文章:

c# - 如何确保 Linq to Sql 不会覆盖或违反不可为 null 的数据库默认值?

c# - 使用 Linq 选择对象上的所有列

c# - 在 WPF 中创建动态 CRUD UI

c# - 如何在 ASP.NET 和 C# 中重用这个基于 Ultimate RestSharp 客户端的 API 客户端?

mysql - 具有相同唯一列的表的主键或外键

php - 使用 PHP 将选项卡式文本转换为树(SQL 将每一行插入 TreeNode 表(TreeNodeID、ParentID、Title))

.net - LINQ to SQL 左外连接

c# - 单点触控 : UIDocumentInteractionController preview right bar button not working in iPhone

javascript - 如何调试 Azure Cosmos DB 存储过程?

java - 集成测试的数据加载和数据库初始化策略