2013-08-14 7 views
2

MVVM 응용 프로그램에서 Entity Framework (코드 우선)로 작업하고 있습니다. 일부 "문서"는 초안, 확정 등과 같은 상태가 있습니다. 문서가 확인되면 변경하지 않았는지, 송장에 대해 생각하고, 한 번 확인/발급되고, 사용자가 내용을 변경할 수 없습니다.일부 엔터티에 대한 읽기 전용

I've 약 엔티티 프레임 워크에 읽기 전용으로 만보기는 데이터베이스 수준의 제어, 또는이 시나리오 (내가 생각하는)

몇 가지 아이디어를 잘 나던 AsNoTracking에 맞게 읽기?

답변

0

엔터티에 IValidatableObject을 구현하고 상태가 확인되고 엔터티 상태가 수정되면 유효성 검사 예외가 throw됩니다.

데이터베이스에서 선호하는 방법 인 업데이트 트리거를 사용하여 해당 데이터베이스를 사용하는 모든 응용 프로그램에서 논리가 수행되도록하는 것이 좋습니다.

+0

IValidatableObject.Validate 메서드에서 EntityEntry를 얻는 것이 약간 까다 롭습니다. 마지막으로 작동합니다 (Diego, thanks to https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1351751- validationcontext-should-expose-owner-dbcontext) – RURIA

0

나는 이것을 해 본 적이 없지만, 내가 본 것은 in this answer입니다.

기본적으로 DbContext의 SaveChanges() 메서드 (또는 DetectChanges())를 재정 의하여 엔터티의 원래 상태에 읽기 전용으로 표시하는 일종의 플래그가 있는지 확인할 수 있습니다 (예 : FINAL bool 열 사실이라면 잠겨 있습니다.) 저장 또는 감지가 발생하면 엔티티가 수정되지 않은 것처럼 보이게 만들 수 있으며 저장되지 않습니다.

이것은 단순한 아이디어이며, 이것이 실제로 가능한지 전혀 알 수 없습니다.

관련 문제