linq to sql을 통해 표준 업데이트가 발생하지만 데이터가 데이터베이스에 유지되지 않습니다.Linq to SQL Update가 데이터베이스에 지속되지 않음
.dbml 파일 디자이너를 통해 자동 생성 클래스를 사용하고 있습니다.
업데이트 문은 다음과 같습니다 :
public static void UpdateEmailsInWorkingTable(Guid emailGuid, string modifiedEmail)
{
using (EmailDBDataContext DBContext = new EmailDBDataContext())
{
EmailAddress_Update EAUpdated = (from e in DBContext.EmailAddress_Updates
where e.EmailGuid == emailGuid
select e).SingleOrDefault();
EAUpdated.EmailAddress = modifiedEmail;
EAUpdated.IsValid = 'Y';
EAUpdated.UpdateFlag = true;
EAUpdated.LastChangedDtTm = DateTime.Now;
try
{
DBContext.SubmitChanges(ConflictMode.FailOnFirstConflict);
}
catch (ChangeConflictException ex)
{
// do stuff here
}
}
}
나는 내 자동 생성의 DataContext 클래스를 통해 보았다 유일한 눈부신 차이는 문제의 테이블 EmailAddress_Update 두 인터페이스 INotifyPropertyChanging를 구현하지 않는다는 것입니다 다른 것을에서 INotifyPropertyChanged 자동 생성 엔티티가 수행합니다.
이것이 변경 사항이 지속되지 않는 이유라고 가정합니다.
간단히 말해서 확장 성 정의가이 클래스의 일부에 대해 생성되지 않습니다. 이게 내 문제의 원인이라면 데이터베이스에서 자동 생성이 제대로되지 않는 원인이 무엇일까요 ??
덕분에 ~
try catch 블록에서 EmailContext는 DBContext로 가정됩니까? –
예 죄송합니다. 수정해서 거기에 변경하는 것을 잊어 버렸습니다. 원래 문제는 아니지만 내 부분에는 오타가 없습니다. –
'SingleOrDefault'를 호출하면'EAUpdated'가 널 포인터가 될 수 있다는 사실을 잘 처리 할 수 있습니다. null 케이스를 처리하고 싶지 않으면 'Single'을 호출해야합니다. –