虽然有PK,但Context.SubmitChanges()没有更新

Ser*_*rov 4 c# linq linq-to-sql

我遇到了C#中linq到DB实现提供的SubmitChanges函数的问题.当我运行该命令时,没有任何内容抛出错误,但记录永远不会更新.我已经查找了这个问题,几乎每个人都说它与表格有问题,没有什么是主键.但是我的表有一个主键分配给它,但SubmitChanges没有发生.为了概述我正在执行的内容,我在这里是一个示例:

public void setApproval(string approvalCode, int ID)
{
    using (DatabaseDataContext context = new DatabaseDataContext(DBConnection().getConnectionString()))
    {
        myRecord con = getRecord(ID); //Gets the record succesfully, PK field in tact
        con.ApprovalStatus = approvalCode;

        context.SubmitChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)

如上所述,记录成功获得所有数据,包括用于识别它的PK字段.数据库连接用户有权更新表,但在这里我希望它能够破解和抱怨.

有任何想法吗?如果我没有提供足够的信息,请告诉我.任何帮助是极大的赞赏!

Har*_*san 5

您应该通过上下文获取对象

public void setApproval(string approvalCode, int ID)
{
    using (DatabaseDataContext context = new DatabaseDataContext(DBConnection().getConnectionString()))
    {
        myRecord con = context.TableName.First(item => item.ID == ID); //Gets the record succesfully, PK field in tact
        con.ApprovalStatus = approvalCode;

        context.SubmitChanges();
    }
}
Run Code Online (Sandbox Code Playgroud)

当您通过Context获取对象时,它会跟踪您所做的更改,然后将这些更改保存在SubmitChanges上