将数据插入联结表实体框架

时间:2017-11-15 06:39:09

标签: mysql asp.net-mvc entity-framework

我的数据库中有两个表,"客户"和"整合"在它们之间有一个连接表。客户将被添加并保存,并且Integration表预先填充了集成流,客户必须选择将其分配给其ID。数据实体如下所示:

Entities

添加客户的代码如下:

 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结构:

Junction table

我的理解是:

 integration_flow.Customers.Add(customer);
                customer.Integrations.Add(integration_flow);
                nt.SaveChanges(); 

将分别添加到集成和客户表

或者不是吗?

0 个答案:

没有答案