2011-12-09 2 views
0

현재 ASP.NET MVC 3을 사용하는 인트라넷 응용 프로그램 프로젝트에서 작업 중입니다. 기본 요구 사항 중 하나는 응용 프로그램으로 만든 모든 데이터를 클라이언트의 ERP에서 사용할 수 있어야한다는 것입니다 소프트웨어뿐만 아니라; 그들은 MS Dynamics NAV와 함께 일합니다. NAV가 데이터베이스로 SQL-Server를 사용하기 때문에 데이터에 액세스하는 것은 실제로 문제가되지 않습니다.Entity Framework 및 Dynamics NAV 데이터베이스

실제로 데이터 액세스를 위해 Entity Framework를 사용하는 실제 프로토 타입이 있습니다. 여기서 중요한 문제는 우리 회사가 ERP 내에서 커스텀 기능을 많이 개발한다는 점이며 따라서 자주 읽고 변경해야하는 데이터베이스 테이블 중 일부가 변경됩니다. 이것은 일반적인 상황에서는 문제가되지 않지만 데이터베이스의 각 필드는 not null으로 표시됩니다. 이것은 Dynamics NAV의 매우 성가신 기능입니다. 즉, Entity Framework는 필드를 모르는 경우 null을 삽입하려고하므로 테이블에 추가 된 모든 필드가 내 코드를 손상시킵니다.

테이블을 변경할 때마다 모델을 다시 생성 할 필요가없는 솔루션을 생각할 수 있습니까?

편집 : 웹 서비스는 옵션이 아닙니다 그래서는 불행하게도 우리의 클라이언트는 아직도 내가 이미 SQL에 접근, 그들 (모바일 단말기에서 실행되는 창고 관리 시스템의 일부)에 대한 다른 응용 프로그램을 개발했습니다 .. 탐색의 버전 4.0을 사용하여 서버에 직접 연결되었지만 동일한 규모가 아니 었습니다.

답변

3

귀하의 요구 사항이 Dynamics NAV와 같은 ERP와 통합되는 경우 모든 데이터 액세스를 응용 프로그램 서버를 통해 전달해야합니다. Dynamics NAV는 애플리케이션 서버와의 통신을 위해 웹 서비스를 노출한다고 생각합니다. 테이블을 직접 액세스하는 것은 특히 트랜잭션과 교착 상태로 인해 재난에 이릅니다. EF는 쿼리를 조정할 수 없으므로이를 더욱 악화시킬 것입니다.

데이터베이스를 통한 응용 프로그램 통합에는 모든 액세스 응용 프로그램에서 생성 된 SQL에 대한 완전한 제어가 필요합니다.

귀하의 주요 질문에 대한 답변은 '아니오'입니다. 데이터베이스를 처음 개발할 때 각 데이터베이스 수정 후 모델을 다시 생성해야합니다. 특히 각 데이터베이스 수정이 변경되는 경우 (데이터베이스를 통한 통합이 좋은 선택이 아닌 또 다른 이유).

+1

답장을 보내 주셔서 감사합니다. 좀 더 자세한 내용을 제공하는 질문을 업데이트했습니다. 그러면 원시 SQL을 사용해야 할 것입니다. 클라이언트에 Nav의 최신 버전이있는 경우 웹 서비스를 사용했을 것입니다. –

+0

이전 버전의 Navision으로 일부 응용 프로그램을 개발했지만 여전히 응용 프로그램 서버를 통해 액세스했습니다. MSMQ는 응용 프로그램 관련 메시지의 통신 ​​및 사용자 지정 처리기로 사용됩니다. –

+0

좋아, 나는 그것에 대해 조사해야 할 것이다. 그것은 나를위한 해결책 일 것입니다. 다시 한 번 감사드립니다! –

관련 문제