마지막 개체 변경 내용을 추적하려고합니다.이 마지막 변경 내용은 "head"개체에 저장됩니다. 나는 그것을 스케치 할 것이다.오버라이드의 개체 컨텍스트에 액세스 SaveChanges
Project
에는 Activities
의 목록이 들어 있으며, 차례로 다른 속성을 가진 Actions
의 목록이 있습니다. Project
에는 Project
의 모든 속성 또는 해당 '하위 개체'의 속성에서 마지막 업데이트를 유지하려는 속성 인 LastUpdateDate
이 있습니다. 다음과 같이
이 들어 나는 엔티티 프레임 워크의 SaveChanges
메소드를 오버라이드 (override) :
public override int SaveChanges() {
var changedEntries = ChangeTracker.Entries();
if (changedEntries != null)
{
var dbEntityEntries = changedEntries as IList<DbEntityEntry> ?? changedEntries.ToList();
foreach (var entry in dbEntityEntries.Where(c => c.State != EntityState.Unchanged))
{
var proj = entry.Entity as Project;
if (proj != null)
{
proj.LastUpdateDate = DateTime.UtcNow;
}
var prop = entry.Entity as Activity;
if (prop != null)
{
var changedProject = dbEntityEntries.Single(x => (x.Entity is Project) && ((Project) x.Entity).Id == prop.ProjectId);
((Project) changedProject.Entity).LastUpdateDate = DateTime.UtcNow;
}
}
}
return base.SaveChanges();
}
내 데이터 세트가 크고 위의 예에서보다 더 많은 특성을 가지고, 그 때문에 나는 모든 개체 때문에 통해 반복 할 싶지 않다 이것은 너무 많은 시간이 걸릴 것입니다. 이 대신에
, 나는 ObjectContext
그래서 난 예를 들어 말할 수있는 나의으로 접근하고 싶습니다 : project[0].Activity[1]...
여기이 상황에 도달하는 방법에 대한 아이디어를 가지고있는 누군가?
당신은'ObjectContext' 방법에서'ObjectContext'에 액세스하려면 보수? 당신은 어떤 어려움을 겪고 있습니까? – Dennis
내 개체 계층 구조에 연결할 수없는 것 같습니다. 특정 유형으로 캐스팅해야하는'entries'만이 너무 많이 반복해야합니다. 그래서 왜 내 개체 설정을 실제 개체로 사용할 수있게하고 싶습니다. – Tikkes
"내 개체 설정"이란 무엇입니까? 질문을 의사 코드로 업데이트 할 수 있습니까? – Dennis