可以使用LINQ to SQL实体更新数据库吗

本文关键字:更新 数据库 实体 SQL LINQ to 可以使 | 更新日期: 2023-09-27 17:57:58

在WCF中使用LINQ to SQL我有一个更新记录方法,ATM我手动分配每个更新的属性。例如

public void UpdateMachineRecord(Guid SessionID, int MachineRecordID, MachineRecord machineRecord)
{
    if (!ValidSession(SessionID))
        return;
    using (MMHLINQSQLDataContext database = new MMHLINQSQLDataContext())
    {
        MachineRecord record = database.MachineRecords.Single(mr => mr.Job.OperationID == MachineRecordID);
        record.ChangedBy = UserSession(SessionID).Name;
        record.ChangedDate = DateTime.Now.ToString();
        record.Date = machineRecord.Date;
        record.EDI = machineRecord.EDI;
        ...
        database.SubmitChanges();
    }
}

我的问题是:有没有一种方法可以使用整个实体更新记录?

例如。

public void UpdateMachineRecord(Guid SessionID, int MachineRecordID, MachineRecord machineRecord)
{
    if (!ValidSession(SessionID))
        return;
    using (MMHLINQSQLDataContext database = new MMHLINQSQLDataContext())
    {
        MachineRecord record = database.MachineRecords.Single(mr => mr.Job.OperationID == MachineRecordID);
        record = machineRecord;
        database.SubmitChanges();
    }
}

可以使用LINQ to SQL实体更新数据库吗

您可以这样做。

database.MachineRecords.Attach(machineRecord, true);
database.SubmitChanges();

这将把它附加为一个修改后的实体(这就是布尔参数的作用)