문제

최고의 평생 모델은 무엇입니까? DataContext?필요할 때마다 새 클래스를 만들어야 하나요(즉, 함수 수준), 이를 사용할 각 클래스에서 사용 가능한 상태로 유지해야 하나요(클래스 수준), 아니면 정적 DataContext(app-domain)를 사용하여 정적 클래스를 만들어야 합니다. 수준)?이에 대해 고려되는 모범 사례가 있습니까?

도움이 되었습니까?

해결책

변경 사항을 저장하려는 경우 수행하려는 작업의 수명 동안 동일한 데이터 컨텍스트를 사용할 수 있도록 유지해야 합니다. .SubmitChanges()그렇지 않으면 해당 변경 사항이 손실됩니다.

단지 물건을 쿼리하는 경우 필요에 따라 생성하는 것이 좋지만 나중에 원하는 경우 .SubmitChanges() 코드를 많이 리팩토링해야 하므로 코드를 효과적으로 유지하는 패턴을 채택하는 것이 좋습니다. datacontext 처음부터 앱 전반에 걸쳐 글로벌합니다.

데이터 컨텍스트는 다음과 같습니다. 연결이 끊어진.쿼리 데이터가 있을 때만 연결이 이루어집니다. 열거된 (쿼리를 처음 실행할 때가 아니라 '게으른' 데이터 유형이므로 필요할 때만 데이터를 제공합니다.) 그런 다음 즉시 닫힙니다.~에 .SubmitChanges() 변경 사항을 제출하기 위해 연결이 열리고 그 후 즉시 닫힙니다.그러니 지킬 생각은 하지 마세요 datacontext 주변에서는 연결을 열어두지만 그렇지 않습니다(연결할 수 있습니다). StateChange 이를 직접 확인하기 위한 연결 이벤트가 있다고 확신합니다).

에 훌륭한 기사가 있습니다. 릭 스트랄의 블로그 이 주제를 깊이있게 다루는 것은 여기에서 제공하는 답변보다 훨씬 더 !!

다른 팁

내 생각에 Jeff Atwood가 이에 대해 이야기한 것 같습니다. Herding Code 팟캐스트, 그는 똑같은 것에 대해 질문을 받았을 때.마지막 15~20분 정도 들어보세요.

내 생각에 datacontext는 Controller 클래스에서 생성됩니다.여기에 많은 세부 사항이 있는지 확실하지 않습니다.그러나 그것은 그렇게 보였습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top