这个问题一直是我周末的噩梦......我有一张表AddOrUpdate不能正常工作,它不断添加,但从不更新.
我想要做的就是当我向表中添加一个新实体时,AddOrUpdate我希望它检查AppointmentId和CompletionCodeId列,如果它们匹配而不是更新,否则添加.
表结构:
CREATE TABLE [dbo].[AppointmentCodes] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[AppointmentId] INT NOT NULL,
[Quantity] INT NOT NULL,
[CompletionCodeId] INT NOT NULL,
CONSTRAINT [PK_AppointmentCodes] PRIMARY KEY CLUSTERED ([Id] ASC, [AppointmentId] ASC));
Run Code Online (Sandbox Code Playgroud)
^^不确定这是否正确.
public void AddOrUpdate(T entity)
{
//uses DbContextExtensions to check value of primary key
_context.AddOrUpdate(entity);
Commit();
}
Run Code Online (Sandbox Code Playgroud)
方法
public void AddAppointmentCodes(List<AppointmentCode> appointmentCodes)
{
appointmentCodes.ForEach(x => _appointmentCodeRepository.AddOrUpdate(x));
}
Run Code Online (Sandbox Code Playgroud)