내가 그것을 업데이트해야 할 때 항상 행을 복제 한 개체가 업데이트 경우 행을 복제 :Linq를하려면 SQL은
protected static Task RegisterToDisc(Task task)
{
try
{
using (DataContext context = new DataContext())
{
//this will print an actual existing id from the db
_log.Debug(task.ID);
context.Tasks.InsertOnSubmit(task);
context.SubmitChanges();
}
}
catch(Exception e)
{
//...
}
return task;
}
을 내가 저장하기 전에 ID를 인쇄 할 때를, 실제로 밖으로 인쇄하는 id는 실제로 db에 있습니다.
이
테이블 경우 :task
이미 데이터베이스에서오고
CREATE TABLE [dbo].[TaskSet](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Message] [nvarchar](max) NOT NULL,
[Result] [nvarchar](max) NOT NULL,
[Status] [int] NOT NULL,
[Priority] [int] NOT NULL,
[Name] [nvarchar](max) NOT NULL,
[DateTimeAsked] [datetime] NOT NULL,
[DateTimePerfomed] [datetime] NOT NULL,
[SessionID] [nvarchar](max) NOT NULL,
CONSTRAINT [PK_TaskSet] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
편집, task.ID이있는 number
LINQ에이를 삽입하는 방법을 제공, 데이터베이스에 존재 포함 엔티티가 PK가 아니고 이미 db에있는 엔티티.
(최대 절전 모드) context.insertOrUpdate(task);
으로 이동하면 기본 키로 수행 할 작업을 결정합니다.
이 방법에 도착하기 전에 오는 "작업"은 어디입니까? – Frederiek
@Frederiek - 편집을 참조하십시오. 감사합니다 – SexyMF