많은 레거시 시스템을 통합하는 과정에 있습니다. 그들은 각각 다른 데이터베이스를 가지고 있습니다. 대부분의 경우 데이터 액세스 코드를 작성해야합니다.레거시 데이터베이스 작업에 사용할 ORM은 무엇입니까?
데이터베이스 스키마를 변경할 수 없습니다 (일부 인덱스 등을 적용 할 수 있지만 테이블과 테이블 열은 구조를 유지해야 함). 데이터베이스 중 일부는 올바른 디자인과 적절한 관계 및 기본/외래 키가 있으며 일부 다른 데이터베이스는 그다지 부족합니다.
이 작업에는 어떤 ORM을 선택 하시겠습니까? 프로젝트 전체에서 동일한 ORM을 사용하고 싶습니다. 내 요구 사항은 다음과 같습니다.
- 코드에서 테이블 또는 열의 이름을 바꿀 수있는 기능. 데이터베이스에 이전 이름을 유지하십시오.
- 적절한 코드 생성
- 효율적인 LINQ 지원 (데이터 모델에 대한 LINQ 쿼리는 효율적인 SQL로 변환되어야 함).
- 생성 된 데이터 클래스는 POCO's이어야합니다.
- 다른 데이터베이스 엔진을 지원하는 것이 좋습니다.
저는 현재 LINQ-To-SQL에 대한 경험이 가장 많습니다. 그러나 나는 그것이이 프로젝트를위한 잘못된 선택일지도 모른다는 느낌이 들었다. 나는 새로운 프레임 워크를 배우는 데 약간의 시간을 투자 할 용의가있다.
광속 3.0 불완전한 LINQ의 구현이 제대로 LINQ 예측을 실행하지 않습니다 또한 (단지 SQL 프로파일 러를 해고하고 일부는 * 1000 개 기록에 * 조인 쿼리 실행), 그리고 ... 즉 당신이하는 경우에만 * Customers * 테이블의 * Name * 필드를 원하면 Lightspeed는 SQL에서 * Customers *의 모든 열을 선택하고 호출 코드에 * Name * 만 투영합니다. 이제 그게 짜증이야! – Mark