2

WCFでLINQtoSQLを使用すると、更新された各プロパティを手動で割り当てる更新レコードメソッドがあります。例えば。

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

1 に答える 1

3

あなたはこれを行うことができます。

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

これにより、変更されたエンティティとしてアタッチされます(これがブールパラメータの目的です)

于 2013-02-06T23:30:59.670 に答える