2015-01-13 4 views
2

내 VS 2013 업데이트 4 설치가 실행되는 동안 나에게 성가신 질문을하기로했으며 아직까지는 (이전 버전의 VS 버전을 사용했기 때문에) 스스로 테스트 할 수 없으므로 쉽게 대답 할 수 있습니다. 또한 필자는 오라클 DB에 대한 경험이 전혀 없으며, 기존 DB를 사용해 봐야만했습니다. 다른 사람들이 수년 전에 실행하기 위해 필요한 모든 작업을 수행했기 때문에 지금까지 작동했습니다.EntityFramework 6 with Oracle : "독립형"ODAC (즉, ODBC 없음)가 있으며 모든 클라이언트 PC에 설치해야합니까?

이 기존 Oracle DB와 함께 EntityFramework 6을 사용해야합니다. 나는 그것이 작동하기 위해서 ODAC가 필요하다는 것을 알고 있으며 아마도 가장 최신의 것 (12.x)이어야합니다. 내가 EF 내 오라클 DB (11g)와 전혀 작동하는지 테스트하기 위해 지금까지했던 :

  • 그런 다음

NuGet에서 NuGet

  • 인스톨 한후에 EF 5 ODAC 11.2.0.3.20 설치 업데이트 가능한 뷰가있는 몇 가지 문제가 발생하면 모든 것이 잘 작동합니다.

    오라클과 함께 EF 6을 실행하려면 먼저 새로운 ODAC 버전이 필요합니다. 본격적인 ODBC가 포함 된 here에서 패키지를 설치해야합니까? PC에 이전 버전이 이미 있습니다. 사용 가능한 ODAC의 "독립 실행 형"설치가 있습니까? 아니면 개발 PC에서 전체 패키지를 제거하거나 다시 설치해야합니까?

    나도 몰라 : 나중에 소프트웨어를 사용하는 모든 클라이언트가이 설치가 필요하거나 DLL을 제공 할 수 있습니까? 내가 아는 한, 클라이언트는 이미 시스템에 ODBC 설치가되어 있으며, 알고있는 것이 중요하다면 DB에있는 데이터를 읽고 조작하는 데 할당 된 특정 DB 사용자가 있습니다. 사전에

    감사합니다!

  • 답변

    3

    관리 드라이버 ODP.NET (.NET 용 Oracle Data Provider)을 사용할 수 있습니다. 여기에서 다운로드 할 수 있습니다 : Oracle Data Access Components (ODAC) Downloads.

    이것은 하나의 DLL (Oracle.ManagedDataAccess.dll)로 배포해야합니다. 그것은 x86과 x64 모두에서 작동합니다.

    +0

    거기에 연결된 작은 XCopy 버전을 다운로드해야한다는 의미입니까? 그리고이 페이지에서는 EF desinger를 제대로 사용하려면 32 비트 ODT가 필요하다고 말합니다. 그래서 내 dev 컴퓨터에서 전체 ODTwithODAC 패키지를 사용할 수 있으며 여전히 배포시 단일 DLL 파일을 제공합니까? 감사! – InvisiblePanda

    +0

    타일 [ODP.NET_Managed121020.zip] 다운로드 (http://download.oracle.com/otn/other/ole-oo4o/ODP.NET_Managed121020.zip). 필자가 썼듯이 32 비트 또는 64 비트 중 어느 것을 사용하든 별 차이가 없습니다. zip에는 EF 용 DLL도 포함되어 있습니다 (EF6/Oracle.ManagedDataAccess.EntityFramework.dll) –

    +0

    우리는 전체 패키지 (ODTwithODAC)를 다운로드 했었습니다. 다른 패키지도 필요하기 때문입니다.이제는 언급 한 DLL을 성공적으로 참조 할 수 있으며 EF 디자이너와 함께 사용할 수도 있습니다. 멋지다! 나는 우리가 응용 프로그램을 출하 할 때 dll을 포함시킬 수 있습니다. 클라이언트 PC의 사용자가 다른 것을 필요로합니까? 마찬가지로, 사용자는 자신의 ODBC 설치를 업데이트해야합니까, 아니면 dll을 출하 할 때 모든 것이 "잘 작동"할까요? 불행히도 저는 아직 그것을 실제로 테스트 할 수 없습니다. – InvisiblePanda

    2

    오랫동안 나는 관리되지 않는 ODP.NET을 사용하고 있었고 응용 프로그램과 함께 거대한 DLL을 드래그해야했지만 완전히 독립형 모드에서도 사용할 수있었습니다. 이 접근법은 here을 설명합니다.

    은 ODP.NET이으로 훨씬 쉬워졌습니다. 난 (Wernfried의 답변에) NuGet을 사용한다면 here에서 관리되는 버전을 설치할 수 있다고 덧붙일 것입니다. 그러나 분산 패키지는이 패키지에서 지원되지 않습니다.

    +0

    이것이 제가 프로젝트에 추가해야 할 유일한 것입니까? NuGet이 "ODP"를 검색 할 때 나에게 보여주는 것을 조금 압도합니다. 나는 ODP.EntityFramework를 사용할 수도 있다고 가정한다. 오라클 홈페이지에서 지적한 것처럼 디자이너를 사용하려면 32 비트 ODAC를 로컬로 설치해야합니까? 감사! – InvisiblePanda

    +0

    예, NuGet에서 의존성을로드하는 것만으로도 충분하다고 생각합니다. 대신 "odp.net.managed"를 검색하십시오. "Oracle Data Provider for .NET (ODP.NET) 관리 드라이버"라는 패키지가 필요합니다. EntityFramework에 대해서는 Nuget의 "odp.net.entityframework"종속성을 설치해야한다고 생각합니다. 하지만 솔직히 EntityFramework + Oracle 조합을 사용한 적이 한번도 없습니다. 그러나 그것을 사용해야한다면 NuGet에서 필요한 모든 종속성을로드하는 방향으로 갈 것입니다. 의존성을 너무 많이 배치하고 관리하는 것을 단순화합니다. 그것이 당신을 위해 밖으로 일할 것이라는 점을 희망하십시오! – ialekseev

    관련 문제