gpt4 book ai didi

c# - 如何在一种方法中填充两个表(一对多)并自动添加外键

转载 作者:行者123 更新时间:2023-11-29 18:08:59 25 4
gpt4 key购买 nike

我有两个名为 ot_reqtransport 的表。如果员工想要提出加类交通请求,我必须填写交通表。 transport 表中的 transport_id(auto_increment) 是 ot_req 表的外键。填充 transport 表后,我想将自动递增的 transport_id 应用到 ot_req 表。有没有办法自动填充数据?我写了这样的方法,但它对我不起作用。

public OTReqAddResponse OTReqAdd(OTReqAddRequest req)
{
OTReqAddResponse res = new OTReqAddResponse();
using (var dbTransaction = context.Database.BeginTransaction())
{
try
{
ot_req objReq = new ot_req();
transport objTransport = new transport();

if (otDet.flag == 1)
{
objTransport.form = req.from;
objTransport.to = req.to;
objTransport.destination = req.destination;
objTransport.reason = req.reason;

context.transports.Add(objTransport);
context.SaveChanges();

objOtReq.transport_id = objTransport.transport_id;
}


objReq.created_date = req.createdDate;
objReq.creator = req.empId;
objReq.status = 2;
objReq.project_id = req.projectId;

context.ot_req.Add(objReq);
context.SaveChanges();

dbTransaction.Commit();
}

dbTransaction.Dispose();
}
return res;
}

如何通过一次提交从 mySql 数据库检索 tranport_id 并将其作为外键应用到 ot_req 表?

最佳答案

您的ot_req对象应该有一个链接回transport对象的属性。 (它可能被称为传输?如果我正确地阅读了下面的导航部分。)如果您将该属性设置为新的、未提交的传输对象,它将在提交这两个对象时自动填充 key 。

 ot_req objReq = new ot_req();
// whatever

transport transport = new transport();
objReq.transport = transport ; // This will auto-fill the FK during commit.
// whatever

// Add both ot_req and transport to the context and commit.
context.ot_req.Add(objReq);
context.SaveChanges();

希望这可以帮助您前进!

关于c# - 如何在一种方法中填充两个表(一对多)并自动添加外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47551560/

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