可以使用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();
}
}
您可以这样做。
database.MachineRecords.Attach(machineRecord, true);
database.SubmitChanges();
这将把它附加为一个修改后的实体(这就是布尔参数的作用)