문제

많은 제품 개발자는 SQL Server, Oracle, DB2, MySQL과 같은 인기있는 RDBM과 완벽하게 작동하는 .NET 응용 프로그램을 작성하려고합니다. 데이터 애플리케이션 블록을 사용하면 구성을 기반으로 데이터베이스 드라이버 (oracleclient, sqlclient 또는 oledbclient)를 동적으로 선택합니다.

그러나 모든 데이터베이스에는 고유 한 SQL의 풍미가 있습니다. 하나의 SQL 코드베이스가 보편적으로 사용되는 것을 방해하는 미묘한 차이가 있습니다. 함수 이름은 다르고, 날짜가 처리되는 방식은 다르고, ID 열이 다릅니다.

미리 정의 된 이스케이프 시퀀스를 사용하여 DB 중립 코드를 작성하기 위해 Data Direct의 타사 제품을 사용하여 DB 중립 코드를 사용할 수 있습니다.

이 문제를 해결하는 Microsoft의 도구 나 제품이 있습니까?

도움이 되었습니까?

해결책

그만큼 Microsoft ado.net 엔티티 프레임 워크 이다 객체 관계 매핑 DB-Agnostic 인 코드를 쓸 수 있도록 설계된 Microsoft의 프레임 워크. 모든 주요 DBMS는 엔티티 프레임 워크를 지원하지만 많은 (예 : MySQL, Postgres)의 경우 .NET 프레임 워크 설치와 별도의 내용을 다운로드해야합니다.

참고 : DB- 특이 적 기능 또는 성능 이유 (필요한 이유)를 위해 기본 SQL로 껍질을 벗기는 경우가 적어도 하나의 사례가없는 O/RM 도구를 사용하여 단일 대형 프로젝트에서 아직 작업하지 않았습니다. 좋은 쿼리 계획을 얻기 위해 특정 방식으로 쿼리를 작성하려면). 그러나 좋은 O/RM은 대부분 SQL을 쓰지 않도록 대부분의 시간을 작동시킬 수 있습니다.

즉, 엔티티 프레임 워크의 현재 버전은 여러 차원에서 매우 제한되어 있습니다. nhibernate, 아소닉, "성숙한"이라는 점은 훨씬 더 성숙합니다. "성숙한"것은 네이티브 SQL, 더 넓은 커뮤니티 지원, 더 나은 성능 등으로 더 깊은 범위의 DBMS 기능을 지원한다는 것을 의미합니다.

이것은 실제, 비교적 복잡한 프로젝트의 경우 현재 버전의 엔티티 프레임 워크가 사용 가능한 다른 O/RM 도구와 관련하여 가장 좋은 방법이라고 생각하지 않습니다.

분명히 다가오는 .NET 4.0/VS2010 Microsoft Entity 프레임 워크의 버전 훨씬 개선되었으므로 내년에 위의 진술은 사실이 아닐 수도 있습니다. 새로운 엔티티 프레임 워크는 예를 들어 DDL에 대한 지원을 추가하므로 DBMS 독립적 인 방식으로 테이블 및 인덱스를 만들 수 있습니다. 또한 .NET 4.0 엔티티 프레임 워크는 다음이라는 멋진 기능을 활용합니다. T4 템플릿, 빌드 타임에 자동 생성 코드에 대한 깔끔한 기능이며, 이는 외부 DB 스키마와 동기화되어야하는 O/RM 랩퍼와 같은 것들에 중요하며 더 나은 양보해야합니다 (일명 사전 컴파일). 런타임까지 데이터베이스 열의 유형을 모르는 O/RM 도구보다 성능.

다른 팁

내가 이해했듯이 RDBMS 독립적 SQL을 작성하는 도구를 찾고 있지만 ORM은 아닙니다. 이것은 다른 ORM 공급 업체가 다른 방식으로 해결 한 실제 문제입니다. 나는 단지 언급 할 수 있습니다 xtensive SQL Dom 도구, ORM을 위해 개발되었습니다. dataObjects.net. 완전한 기능을 갖춘 DOM 모델을 사용하여 쿼리를 작성할 수있는 SQL에 대한 추상화입니다. 이 순간 SQL Dom은 DataObjects.net과 별도로 홍보되지 않지만 오픈 소스 제품이므로 저자에게 물어볼 수 있습니다. 내가 아는 한 일부 타사 프로젝트에서 성공적으로 사용됩니다.

Microsoft에서 직접가 아닙니다. 이러한 도구는 일반적으로 객체 관계 매퍼 또는 짧은 ORM입니다. 예를 들어, Nhibernate는 일반적으로 널리 사용되는 ORM으로 귀하의 요구에 매우 확실합니다. 물론 Telerik OpenAccess ORM, DeVexpress XPO 또는 REBOBLESSS DATABSTRANT와 같은 다른 상용 제품이 있습니다.

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