저는 C# 게임 서버에서 엔티티 프레임 워크를 사용하여 쿼리하기가 쉬워졌습니다. 필자는 유형 안전성이 매우 중요합니다. Entity Framework는 상용구 코드 대부분을 자동화하는 데 큰 도움이됩니다. 비록 내가 어떤 구성 요소, 즉 ObjectContext
을 활용하는 것에 대해 어떻게 확신 할지는 모르겠지만.엔티티 프레임 워크 (게임 서버 포함)
서버는 많은 스레딩을 사용하므로 스레드 안전이 중요합니다. 지금은 쿼리를 실행하기 위해 사용자 지정 풀만 사용합니다. 많은 세부 사항에 가지 않고, 각 쿼리의 방식으로 작동합니다
- 잡아
DbConnection
- 잡아
DbCommand
DbCommand
- 을 실행 쿼리 클래스는 매개 변수를 설정하도록 허용 쿼리 클래스가 쿼리 결과를 처리 할 수 있도록 허용
DbCommand
,210
- 무료
DbConnection
그것은 매우 깨끗하고 빠르고, 안전하지만 문제가 쿼리를 작성하는 번거 로움의 비트인지, 그리고 내가 원한다면 수동으로 업데이트 "컨테이너 클래스"생성해야 타입 안전. 이것이 내가 Entity Framework를 사용하게 된 이유입니다.
DbConnection
및 DbCommand
을 사용하면 위의 모든 작업이 효과적입니다. DbConnection
/Command가 어떤 개체 나 다른 개체에 대한 쿼리를 수행하는지에 대한 우려가 없기 때문입니다.
어쨌든, 제한을 부과하지 않고 더 많은 것을 설명하는 방법을 모르겠습니다. DbConnection
/Command를 사용하여 쿼리를 실행할 때마다 쿼리를 실행하는 것과 같은 작업을 수행하면 실제로 데이터베이스를 자주 업데이트 할 필요가 없을 때 ObjectContext를 삭제하면 너무 많은 오버 헤드가 추가됩니다.
데이터베이스에 대한 수요가 높지 않은 게임 서버에 Entity Framework를 즉시 사용하고 지속적으로 최신 상태로 유지하려면 어떻게해야합니까?
정확한 질문은 무엇입니까? 데이터베이스가 DataContext보다 드물게 업데이트되면 큰 오버 헤드가 발생하지 않아야합니다. dbcommands와 dbconnections를 처리합니까? –
혼란을 가져 주어서 죄송합니다. 데이터베이스는 자주 업데이트되지만 데이터는 매우 드물게 읽혀집니다. DbCommand/Connection에 관해서는, 아니, 나는 그것들을 처분하지 못했지만 처분 대신 풀을 사용하도록 다시 설계하기가 쉽기 때문이었습니다. ObjectContexts를 자주 작성/처분해도 상관 없습니다 (비용은 저렴하다고 가정).하지만 많은 캐싱 oppertunities를 무력화시키는 것처럼 보입니다. – Spodi