【问题标题】:i want to update only single row column value with rollback commit我只想用回滚提交更新单行列值
【发布时间】:2017-08-02 06:35:46
【问题描述】:

我只想用回滚提交更新单行列值,但是当我在 if 中创建表对象并传递给 insertonsubmit 时,它给了我错误,请帮助我如何解决这个问题

var challan = dataContext.Purchase_Challans.Where(t => t.Challan_ID == Convert.ToInt64(ViewState["challanid"]) && t.Company_ID == Convert.ToInt32(Session["CompanyId"])).Select(t => t).ToList();
                        if (challan.Any())
                        {
                            challan.ToList()[0].Inv_DocumentId = dmsPurchaseInvoice.Document_ID;
                            dataContext.Purchase_Challans.InsertOnSubmit()
                            dataContext.SubmitChanges();
                        }

【问题讨论】:

    标签: list linq if-statement datacontext rollback


    【解决方案1】:

    了解有关错误的更多详细信息会有所帮助,但我认为这是因为您告诉 dataContext 插入您刚刚检索到的实体(而您想更新它)。

    此外,您发布的代码甚至无法编译并且充满了有问题的代码,例如 challan.ToList() 它已经是一个列表,或者在委托中解析字符串。

    也就是说,这段代码更简单,更有可能工作(但老实说我没有测试过):

    var challanId = Convert.ToInt64(ViewState["challanid"]);
    var companyId = Convert.ToInt32(ViewState["CompanyId"]);
    var challan = dataContext.Purchase_Challans.SingleOrDefault(t => t.Challan_ID == challanId && t.Company_ID == companyId);
    if (challan != null)
    {
        challan.Inv_DocumentId = dmsPurchaseInvoice.Documet_Id;
        dataContext.SubmitChanges();
    }
    

    【讨论】:

    • 因为我正在寻找更多的声誉,那么您能否将答案标记为已接受并投票?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2013-03-06
    • 2016-04-02
    • 2013-10-27
    • 1970-01-01
    相关资源
    最近更新 更多