在不同的数据库中通过LINQ进行更新

本文关键字:LINQ 更新 数据库 | 更新日期: 2023-09-27 17:49:37

我有一个DB,看起来像这样:

1:

CommissionsV2 (Table = Entity_Product_Point)
这也是我的DBML,只有一个表。

二:

WebEnroll (Table = PlanMaster)
这是我的另一个DBML,其中有一个表。

现在通过LINQ,我在这里添加了一行,它有一个这样的查询:

                        CommissionsV2DataContext cv = new CommissionsV2DataContext();
                        Entity_Product_Point ev = new Entity_Product_Point();
                        ev.Entity_ID = getEntity;
                        ev.Product_ID = tr.First();
                        ev.HiCommissionOld = (double)firststYrComp;
                        ev.LowCommissionOld = (double)recurringComp;
                        ev.HiCommission = (double)finalFirstYrComp * 100;
                        ev.LowCommission = (double)finalRecurringComp * 100;
                        ev.DateCreated = System.DateTime.Now;
                        cv.Entity_Product_Points.InsertOnSubmit(ev);
                        cv.SubmitChanges();

现在我的update语句是这样的:

 protected void gvShowComm_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        //Getting the Entity_ID from the Session!
        int getEntity = Int16.Parse(Session["EntitySelected"].ToString());
        //Accessing the variables from the controls!
        System.Web.UI.WebControls.TextBox product_ID = gvShowComm.Rows[e.RowIndex].FindControl("ProductName") as System.Web.UI.WebControls.TextBox;
        System.Web.UI.WebControls.TextBox planName = gvShowComm.Rows[e.RowIndex].FindControl("PlanName") as System.Web.UI.WebControls.TextBox;
        System.Web.UI.WebControls.TextBox hiCommOld = gvShowComm.Rows[e.RowIndex].FindControl("HiComm") as System.Web.UI.WebControls.TextBox;
        System.Web.UI.WebControls.TextBox lowCommOld = gvShowComm.Rows[e.RowIndex].FindControl("LowComm") as System.Web.UI.WebControls.TextBox;
        //Storing the values into variables!
        int product = Int16.Parse(product_ID.Text);
        string plan = planName.Text;
        int hiOld = Int16.Parse(hiCommOld.Text);
        int lowOld = Int16.Parse(lowCommOld.Text);
        //Updating the values into the table through LINQ!
        dbWebEnrollDataContext dt = new dbWebEnrollDataContext(); //This has PlanName in PlanMaster Table.
        CommissionsV2DataContext cv = new CommissionsV2DataContext(); //Entity_Product_Point has all the other columns which needs to be updated!
        Entity_Product_Point ev = cv.Entity_Product_Points.Single(c => c.Product_ID == product);
        ev.HiCommissionOld = hiOld;
        ev.LowCommissionOld = lowOld;
        ev.Entity_ID = getEntity;
        cv.SubmitChanges();

在不同的数据库中通过LINQ进行更新

为了更新,您需要检索需要更新的实体。

在你的例子中应该是:

Entity_Product_Point ev = cv.Entity_Product_Points.Single(c => c.Product_ID == product);
ev.HiCommissionOld = hiOld;
ev.LowCommissionOld = lowOld;
// Retrieve the plan that needs to be updated and set the name
// Submit the changes
cv.SubmitChanges();
// Retrieve the new values and rebind the gridview against the new values