2009-06-08 4 views
2

내 프로젝트에서 SQL Server를 사용하려고합니다. ORM을 선택하고 싶습니다. NHibernate as an ORM에 대한 경험이 있습니다. 사실, 그 프로젝트 (MySQL의 백엔드)의 특성을 NHibernate가 실제로는 선택입니다.SQL Server 용 ORM 권장

또한 strongly typed dataset as my ORM을 사용했으며 Microsoft Access를 백엔드로 사용하고 있습니다. 또한 LINQ2SQL에 대한 경험이 있습니다.

이제 알겠습니다. 모든 경로가 로마로 연결됩니다.; 많은 ORM이 SQL Server를 잘 처리 할 수 ​​있습니다. 하지만 최상의 ORM을 원한다면

  1. 개발 시간은입니다. 즉, 엔터티 클래스를 데이터베이스 스키마에 매핑하는 끌어서 놓기 디자이너입니다. 따라서 스키마를 변경하면 엔티티 클래스가 자동으로 업데이트됩니다.
  2. 복수 데이터베이스 지원. ORM은 최적의 방법으로 여러 데이터베이스 쿼리를 처리 할 수 ​​있어야합니다. 또한 여러 연결 문자열 지원도 쉽게 수행해야합니다.
  3. 확장 성. 쿼리를 추가하려면 디자이너 파일을 엉망으로 만들고 싶지 않습니다. 그들은 목에 통증이 있습니다.

아마도 그럴 것입니다. 어떤 아이디어?

+0

비용이 문제가 되나요? –

+0

잠시 생각해보십시오 ... 아니요. – Graviton

+0

진지하게, LLBLGen으로 가십시오. 요구 사항 # 1은 NHibernate를 죽인다 (단 하나의 개발자이거나 다른 모든 사람들이 경험하지 못한다면). # 2는 Linq 2 SQL과 데이터 셋을 효과적으로 없앤다. –

답변

5

그의 요구 사항에 따라 LLBLGen이 최선의 방법입니다. LLBL과 NH 사이에는 큰 차이가 있다는 것을 알아 두십시오. LLBL은 ORM/Generator이며 엔티티는 미리 생성 된 많은 코드를 가지고 있으며 데이터베이스에서 시작합니다. 따라서 끌어서 놓기가 원하는 경우 LLBL을 사용하십시오.

+1

나는 이것에 동의 할 것이다 : 우리는 여러 응용 분야에서 LLBLGen을 성공적으로 사용했다. LL은 Low Level을 의미합니다. 생성되는 엔티티는 테이블에서 직접 파생되며 엔티티를 * 시작점 *으로 사용하여 비즈니스 객체를 작성하는 것은 사용자의 책임입니다. – Godeke

+1

+1 LLBLGen ..... 몇 년 동안 그것을 사용하고 우수하며, 쿼리 언어는 매우 강력합니다. – tbone

+0

2 년 (실제로 v3 이후)부터 디자이너는 모델을 먼저 지원하므로 처음부터 시작하여 모델에서 작업하여 모델 작업을하는 동안 DB에 대한 변경 스크립트를 생성 할 수 있습니다. :) –

0
+0

버전 2를 기다리고 싶습니다. 내 인상은 EF의 V1이 황금 시간대에 준비가되어 있지 않다는 것입니다. –

+0

동의. 그냥 옵션 :) –

3

LLBLGen 당신을위한 옵션이 될 수있는 것은 아니지만

어느 정도 요건을 각각 충족 것으로 보인다.

이 앱에는 최고의 디자이너 앱이 있으며 기능이 풍부합니다.

0
  • 형식화 된 데이터 집합 : 0/3
  • Linq를하려면 SQL : 1/3 그것은 그것은 항목 2의 일부를 할 수있는 항목 3. 작업을 수행 할 수 있습니다 다른 쿼리에 대한 여러 연결 문자열이 아무 문제 없다 - 당신이 원하는 경우 만 단일 쿼리에서 여러 데이터베이스를 사용하려면보기 또는 저장 프로 시저를 사용해야합니다. 항목 1은 바스 트입니다. 스키마를 변경하면 디자이너에서 항목을 직접 새로 고쳐야합니다.
+0

디자이너를 사용하는 대신 Linq-to-SQL 데이터 컨텍스트를 생성하는 데 SQLMetal을 사용하는 것이 훨씬 빠릅니다 - http://msdn.microsoft.com/en-us/library/bb386987.aspx – Nick

+0

물론, 하지만 미리 빌드 작업이나 다른 작업을하지 않으면 자동으로 업데이트되지 않습니다. –

0

강력한 형식의 데이터 집합은 OR/M 도구로 간주되어서는 안됩니다. (강하게 입력 된) 데이터 집합은 데이터베이스의 데이터를 메모리에 표현한 것입니다 (1 : 1 표현).

OR/M을 사용하면 DB 모델의 1 : 1 표현 일 필요가없는 메모리 내 비즈니스 객체를 사용하여 데이터베이스에있는 데이터를 '변환'할 수 있습니다. 논리 등).

어쩌면 당신은 MS 엔터티 프레임 워크를 볼 수 있지만 지금까지 내가 아는 한 NHibernate는 기능, 성능, 추상화와 관련하여 더 나은 솔루션이며, 그러나 이것은 아마도 개발 시간에 약간의 비용이 든다. (드래그 앤 드롭 디자인은 없지만 맵핑에서 데이터 모델을 생성 할 수있다.)

(늦은 응답 - 네트워크 오류 ...)

0

나는 DbBroker 매우 빠르고 가벼운 ORM 라이브러리를 제안하고 싶습니다. 그것은 데이터 최적화는

입니다 SQL Server 용 zed.

DbBroker site