2009-10-08 3 views
3

일부 개발자는 L2S가 확장 가능하지 않다는 소식을 들었습니다. 그 의미가 무엇인지 완전히 이해하고 있는지 확신 할 수 없습니다. 앱의 레이어와 관련이있는 것 같습니다 ( 앱이 계층화 된 앱이라면). 누군가이 주제에 대해 밝힐 수 있습니까?Linq To SQL은 확장 성이 없다는 것은 무엇을 의미합니까?

감사합니다, 아비

+0

는 http://stackoverflow.com/questions/214233/how-scalable-is-linq 이미 프롬프트 응답에 대한 – Andrew

답변

2

이 기능 확장에 가깝습니다. LINQ에서 생성 된 도메인 객체를 살펴보면 NHibernate와 같은 다른 지속성 프레임 워크로 이동할 경우 불필요해질 수있는 많은 부 풀림을 알 수 있습니다. 하나의 옵션은 자신의 도메인 계층을보다 추상화하고 생성 된 도메인을 추상화하는 것입니다. 도메인 계층을 '팽창없는'상태로 유지하면 다른 지속성 프레임 워크와 함께 재사용 할 수 있습니다. L2S는 그다지 잘하지 못합니다. 다른 것들이 성능을 포함 할 수 있지만 이후 버전에서 개선되었다고 생각합니까? 당신의 컬렉션이 작은 경우에도

+0

감사 덮여. 그렇다면 L2S가 기본적으로 수행하는 작업은 올바르게 데이터 액세스 레이어에 도메인 계층을 연결하는 것입니다. 글쎄, 그건 나쁘지는 않지만 확장 성 문제 또는 유지 보수 문제입니까? 나에게 분명하지 않은 또 하나의 점은 개발자가 작성한 도메인 레이어와 생성 된 도메인 레이어가 두 개 있다고 말하면서입니다. 전에 두 도메인 계층에 대해 들어 본 적이 없습니다. 생성 된 도메인이 코드 생성기로 생성 되었습니까? 그런 다음 다른 도메인 계층에 매핑됩니까? 나는 아직도이 개념을 얻지 못한다. 대단히 감사합니다. –

+0

기능 확장 성. L2S에는 데이터베이스 스키마를 기반으로 도메인/엔티티 계층을 생성하는 엔티티 생성기가 있습니다. 그것으로부터 벗어날 도메인 모델은 L2S에 단단히 연결되어 있습니다. 나중에 다른 지속성 프레임 워크로 이식 할 수 있기를 원하면 추상 도메인 모델을 작성하는 것이 좋습니다. 그러나 추가 오버 헤드 인 데이터를 검색하거나 유지하려는 경우 L2S 엔티티를 추상 도메인 엔티티에 맵핑해야합니다. 또한 응용 프로그램을 확장 할 수 있다면 여기에서 고통을 상상할 수 있습니다. –

+0

이것은 대부분의 프로젝트에서 문제가되지 않습니다. 모든 사람들이 이렇게 디자인하지는 않습니다. 나는 단지 순수 주의자 일뿐입니다. –

1

, 코드 생성기에 의해 생성 된 SQL은 결코 좋은 실행 계획을 점점 올바른 인덱스를 따기에 크게 의존하는 경우 특히 손으로 코딩 SQL로 최적화로 될 것 없다.

이러한 사례를 직접 코딩하고 SP를 사용한다고 가정하면 데이터가 매우 큰 경우 데이터베이스 엔진의 도움이 있는지 여부에 관계없이 효율적인 메모리 사용을 위해서는 많은 트릭이 필요합니다.

그러나 모든 추상화에는 제한이 있습니다.

2

나는 Stack Overflow uses it 것을 계정에 복용, 합리적으로 잘 확장하고 작은 사이트가 아닙니다 생각합니다.

+0

참으로 흥미 롭습니다 ... 그러나 그들은 그 한계를 극복 할 수있는 몇 가지 방법을 찾았을 것입니다. –

관련 문제