나는 이것에 대한 간단한 해결책을 찾고 있었는데, NHibernate와 같은 것을 향하여 최선을 다했지만 지금까지 내가 찾은 모든 것이 약간 다른 문제를 해결하려고하는 것 같다. 현재 프로젝트에서보고있는 내용은 다음과 같습니다.간단한 읽기 전용 DAL 생성?
IBM의 핵심 비즈니스 (금융 기관)에 사용되는 타사 소프트웨어 제품군의 기본 저장소로 IBM iSeries 데이터베이스가 있습니다. 우리 팀이하는 일 중 일부는이 데이터의 많은 부분을보고하거나 키 오프하는 응용 프로그램을 작성하는 것입니다. 과거에는 수동으로 ADO.NET 연결 (.NET 3.5 및 Visual Studio 2008 사용 중)을 수동으로 작성하고 쿼리를 수동으로 작성했습니다.
앞으로 나아가고 싶습니다. 개발 팀에서 데이터를 가져 오는 과정을 단순화합니다.
var something = (from t in TableName select t);
그리고, 이상적으로, 그들은 단지 얻을 것이라고 일부에 IQueryable 또는 생성의는 IEnumerable : 오히려 연결 및 쿼리와 모든마다 만드는 것보다, 차라리 개발자가 단순히 이런 식으로 뭔가를 할 수있을 정도 거라고 엔티티. 이것은 내가 개발중인 새로운 도메인 코어 내부에서 이루어질 것입니다.이 엔티티가 어디에 살며 애플리케이션은 요청/응답 서비스 레이어를 통해 인터페이스 할 것입니다. 한 번 생성되어야 데이터베이스 테이블에 해당
- 엔티티 우리는 수동으로 시간이 지남에 업데이트 유지하기 위해 선호하는 것 :주의해야 할
몇 가지 있습니다. 즉, 열/테이블이 데이터베이스에 추가되면 아무 것도 할 필요가 없습니다. (물론 일부가 삭제 된 경우에는 삭제되지만 괜찮습니다.)하지만 새 열을 사용해야하는 경우 해당 열을 다시 생성하지 않고도 필요한 클래스에 추가 할 수 있어야합니다. 모든 것.
- 전체가 선택 전용이어야합니다. 우리는 데이터베이스에서 어떤 것도 깨뜨릴 수 있기를 원하지 않기 때문에 여기서 전체 DAL을 수행하지는 않습니다 (실수로).
- 우리는 도메인 객체와 생성 된 엔티티 유형간에 어떤 종류의 매핑도 필요하지 않습니다. 도메인은 그곳에있는 데이터의 일부만을 거의 다루지 않으며, 우리가 필요로하지 않을 대부분의 데이터를 다루며, 시간이 지남에 따라 수동으로 재사용 가능한 맵을 생성합니다. 나는 이미 "리포지토리"클래스가 도메인 객체를 리턴하는 DAL을 논리적으로 분리했다. 나는 리포지토리 클래스 내에서 사용되는 수동 ADO보다 나은 대안을 찾고있다.
의견이 있으십니까? 내가 뭘하는지는 마치 DAL/ORM 도구/튜토리얼 온라인에 대한 정상적인 수요 밖에서는 아무 것도 찾을 수 없었던 것 같습니다. 아니면 뭔가 명확한 것을 간과하고 있을까요? 나는이 도구가 사용 된 몇 가지 프로젝트에 있었던
http://www.codesmithtools.com/
하고, 개발자들은 좋아했다 :
IBM iSeries ... DB2 서버를 의미합니까? – code4life
ADA 연결을 위해 DB2 드라이버 (IBM.Data.DB2.iSeries.dll)를 사용하는 많은 레거시 응용 프로그램처럼 보입니다. 나는 여기에서 "iSeries 팀"에 있지 않기 때문에 나는 (정책의 문제로서) 세부 사항으로부터 보호 받았다. 그러나 나는 과거에 "iSeries"및 "AS400"이라고 불렀다고 들었습니다. 어쩌면 AS400에서 실행되는 DB2일까요? 나는 IBM 데이타베이스 사람이 아니기 때문에 올바른 키워드를 모르겠다. :) – David
당신의 관점에서 보면 수동 ADO는 실제로 지루한'IDataReader' /'IDataRecord' 해석 코드 ? –