동일한 Northwind 데이터베이스를 조작하는 두 개의 프로그램 인스턴스가 있습니다.
인스턴스 중 하나에서 데이터베이스에 일부 레코드를 추가 할 때 (예 : 고객 외래 키가 John
인 Orders 테이블에 일부 주문을 추가하는 경우),이 새 레코드를 다른 프로그램 인스턴스에서 올바르게 쿼리 할 수 있습니다. 이 문제는 John.Orders
을 사용하여 새 레코드에 액세스하려고 할 때 시작됩니다. 이 경우 프로그램의 두 번째 인스턴스에 새로 추가 된 레코드가 표시되지 않습니다. 어떻게해야합니까?LINQ 클래스의 관계형 속성을 새로 고치는 방법은 무엇입니까?
1
A
답변
1
발생하는 문제는 LINQ to SQL DataContext
클래스를 활성 상태로 유지하는 것과 관련이 있습니다. 일반적으로 각 작업 단위/비즈니스 트랜잭션 이후에 의미하는 '작업 단위 (UOW)'디자인 패턴을 따르므로 작업 단위를 수행 한 후에는 파손되어야합니다.
응용 프로그램의 전체 수명 동안 DataContext
클래스를 활성 상태로 유지하고있을 가능성이 있습니다. DataContext
클래스는 일단 검색된 모든 객체를 캐시하여 데이터가 오래 될 것임을 의미하므로이 작업에는 적합하지 않습니다.
모든 작업 또는 사용자가 새 양식/화면을 열 때마다 새 DataContext
클래스를 만듭니다.
+0
내 실제 코드에서 몇 가지 이유로 데이터베이스를 열어 두어야합니다. 그래서이 솔루션은 나를 위해 작동하지 않습니다. – melmi
관계형을 의미합니까? – Andrey
예, 수정했습니다. – melmi