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

时间:2013-02-06 23:25:11

标签: c# linq-to-sql

在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();
    }
}

1 个答案:

答案 0 :(得分:3)

你可以这样做。

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

这会将它附加为修改后的实体(这是布尔参数的用途)