2009-10-23 3 views
2

기본 키가 정의되지 않은 데이터베이스에서 작동하는 .Net 용 ORM 도구를 아는 사람이 있습니까? 우리는 MS SQL Server 2005를 실행하고 있습니다.기본 키가 정의되지 않은 데이터베이스의 .NET ORM

DB 스키마를 변경하고 기본 키를 추가 할 수 없습니다. DB는 당사의 ERP 시스템이며 비즈니스 로직은 테이블을 비관적으로 만들 것입니다.

예를 들어 '고객'테이블이 CustomerNumber 필드에 기본 키를 갖고있는 것이 합리적 일 것입니다. SQL Server 2005에는 '고객'테이블에 기본 키가 없지만 ERP 소프트웨어는 다른 고객이 동일한 CustomerNumber를 가진 두 명의 고객을 추가하는 것을 방지합니다. 따라서 데이터베이스에 곧바로 연결하면 동일한 CustomerNumber를 가진 두 명의 고객을 추가 할 수 있지만 ERP 소프트웨어를 사용하면 차단할 수 있습니다.

지금까지 성공과 함께 LINQ-SQL을 사용해 왔습니다. VS2008의 디자이너에서 기본 키를 정의하고 LINQ-SQL의 모든 기능을 사용할 수 있습니다. 그러나, 나는 커다란 프로젝트를 시작하려고하고 있으며 좀 더 성숙한 ORM 도구를 찾고 있습니다. LLBL Gen Pro를 확인했지만 제대로 작동하지 않는 것 같습니다. 또한 MS Entity Framework를 확인한 후 문제가 발생했습니다.

아이디어가 있습니까? 아니면 내가하고 싶은 일과 비슷한 것을 관리 한 사람이 있습니까?

답변

3

당신이 이미 알고있는 열쇠를 이미 알고 있다고 생각합니다.

데이터베이스 에는에 기본 키가 있으며 데이터베이스 엔진에서만 적용되지 않습니다.

예를 들어 Customer 테이블에는 CustomerNumber 필드가 있습니다.

모든 .NET ORM (나는 을 선호합니다.)은 읽기 및 업데이트를 올바르게 관리 할 수 ​​있습니다.

작성 및 삭제는 문제가 발생할 수있는 시간입니다.

만들기의 경우 새 유효한 CustomerNumber 값을 생성해야합니다. Delete의 경우 외래 키 관계를 위반하지 않아야합니다. (NHibernate에서는 기본적으로 assigned의 프라이 머리 키 타입을 사용할 수 있습니다. 이는 기본적으로 코드가 키 값을 할당하고 NHibernate가 이들을 사용해야 함을 의미합니다.)