gpt4 book ai didi

asp.net-mvc - Linq2Sql 将记录插入相关表

转载 作者:行者123 更新时间:2023-12-04 20:05:45 24 4
gpt4 key购买 nike

类似情况:How to add several dependent records with LINQ2SQL
(这似乎合乎逻辑,但对我不起作用)

ASP.NET MVC + Linq2SQL

我有 2 张表,分别称为 Challenges 和 Participants。

  • 挑战{挑战ID,
    ChallengeDesc,申请人ID,
    响应者ID }
  • 参与者 {participantId, FirstName, LastName }

  • 参与者和挑战之间存在一对多的关系 - 每个 key (applicantId、RespondantId)1 个。

    我有一个输入表单,它收集所有字段以创建新的申请人和响应者以及挑战。 Databinder 将所有字段正确绑定(bind)到 Challenge 及其子参与者,但是,在浏览由 Linq2Sql 创建的结构时,参与者对象的名称与挑战对象中的键名不匹配(applicantId 与 Participant 对象匹配,并且 respondantId 与 Participant1 匹配目的)。

    因此,当我在 InsertOnSubmit(aChallenge) 之后尝试 SubmitChanges() 时,我从 Linq2Sql 收到一条foreign_key 约束验证消息。在 SQL Server Profiler 中,我可以看到参与者正在正确创建,但是在保存挑战时,这些新插入的参与者的 ID 没有设置为挑战对象,因此系统抛出外键违规消息。

    我该如何克服这个问题?

    最佳答案

    我认为你必须这样写(假设你有 Participant 和 Challenge 类):

    Participant applicant = new Participant();
    Participant respondant = new Participant();
    //update your participants here

    Challenge insertedChallenge = new Challenge();
    //update your challenge values here

    applicant.Challenges.add(insertedChallenge);
    respondant.Challenges1.add(insertedChallenge);

    submitChanges();

    Linq-to-SQL 应该自动分配这些属性(挑战和挑战),以便它可以为您设置键值。

    希望能帮助到你。

    关于asp.net-mvc - Linq2Sql 将记录插入相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/875653/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com