2017-12-21 1 views
0

한 테이블의 레코드에 대해 업데이트를 수행해야하지만이 업데이트가 허용되는지 여부는 다른 테이블의 레코드 값에 따라 다릅니다. 두 엔티티를 다운로드하여 확인하고 값을 변경하고 저장합니다.한 테이블에서 EF를 사용하여 레코드를 업데이트하고 다른 테이블에서 동시성 검사 사용

지금까지는 그렇게 좋았지 만, "허용"기록을 확인하고 저장하는 것 사이에는 변함이 없습니다. 기본적으로 동시성 처리와 같은 것이 필요하지만 변경된 레코드에는 필요하지 않습니다.

엔티티 프레임 워크의 경우. 가능한 경우 프로 시저 또는 SQL로 전환하지 않는 것을 선호합니다.

내 시나리오.

var db = new MyDb(); 
var allowingRecord = db.AllowingRecords.First(); 

if(allowingRecord.Allow) // allows to make changes in RecordsToChange 
{ 
    var recordToChange = db.RecordsToChange.First(); 
    recordToChange.FieldToChange = "Changing"; 
} 

// Somwhere right here allowingRecord.Allow changes to false, but entity is not updated 

db.SaveChanges(); 

)

답변

0

당신은이 목적을 위해 메멘토 디자인 패턴을 확인 할 수 있습니다. 그것의 기본적으로 귀하의 상태를 저장하고 당신은 그 패턴으로 항상 그것을 사용할 수 예를 들어, 당신은 코드 예제뿐만 아니라이 링크를 확인할 수 있습니다; http://www.dofactory.com/net/memento-design-pattern

관련 문제