我的数据库中有两个表,"客户"和"整合"在它们之间有一个连接表。客户将被添加并保存,并且Integration表预先填充了集成流,客户必须选择将其分配给其ID。数据实体如下所示:
添加客户的代码如下:
public JsonResult RegisterUser(Courier courier, Customer customer, Station station, List<Integration> integration, IntegrationCapability intCapabilities, List<Question> question, List<SysIntClient> sysintClient)
{
string returnMessage = "";
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
DateTime dt = DateTime.ParseExact(date, "yyyy-MM-dd HH:mm:ss", null);
customer.ExpectedGoLive = dt;
OnbardingDBEntities nt = new OnbardingDBEntities();
try
{
nt.Customers.Add(customer);
nt.SaveChanges();
int cust_ID = 0;
if (customer.CustName != null)
{
cust_ID = getCustomerID(customer.CustName);
}
else
{
cust_ID = 0;
}
现在我要做的是在Integration和Customer之间的联结表中添加一条记录。客户被添加,然后我从客户的选择中获取ID,并希望将这些ID添加到客户和集成之间的联结表中。到目前为止我所拥有的是:
Integration integration_flow = null;
foreach (Integration i in integration)
{
integration_flow = new Integration();
integration_flow.IntID = i.IntID;
integration_flow.SI_ID = i.SI_ID;
integration_flow.IntegrationFlow = i.IntegrationFlow;
integration_flow.Customers.Add(customer);
customer.Integrations.Add(integration_flow);
nt.SaveChanges();
}
这似乎不起作用,因为我不想添加到Integration表中,而且我已经保存到Customer表中。如何从实体框架中独立访问联结表并添加到其中。
编辑:
以下是来自DB的图像,用于显示联结表的db结构:
我的理解是:
integration_flow.Customers.Add(customer);
customer.Integrations.Add(integration_flow);
nt.SaveChanges();
将分别添加到集成和客户表
或者不是吗?