도메인 구동 디자인과 EF 4.1을 사용하여 시스템을 구축하고 있습니다. 내 속성 중 일부에서는 불법적 인 값을 설정하지 못하도록 논리를 설정하고 예외가 발생하면 예외를 throw합니다. 내 수업을 인스턴스화 할 때 EF가 새로운 임시 수업을 만들었다 고 생각했습니다. MyClass_abc123 ... 모든 가상 멤버를 재정의하여 MyClass에서 상속하여 DB의 데이터로 설정할 수 있습니다. EF가 아래의 클래스를 인스턴스화하고 MyObj 속성을 설정하려고하면 예외가 발생합니다. 누구든지 그것을 해결할 수있는 단서가 있거나 좋은 방법이 있습니까?Entity Framework 4.1 - 코드를 먼저 작성하십시오. EF가 가상 멤버를 재정의하지 않습니까?
public class MyClass
{
private MyObject _myObj;
public virtual MyObject MyObj
{
get { return _myObj; }
set
{
if (!check some logic...)
throw new Exception();
_myObj = value;
}
}
}
BR 필립
우리는 세터에서 어떤 논리가 실행되는지 알지 못합니다. 속성을 재정의 (override)하는 것은 문제가되지 않습니다. 그것은 당신의 논리의 문제입니다. –
만약 내가 쓰기 만한다면 "logic"일을 건너 뛰십시오 : set {throw new Exception();} 그것은 예외를 던질 것입니다. 하지만 EF가 자신의 재산으로 재산을 무효화 할 것이라고 생각 했나요? – Philip