2010-08-05 18 views
6

Todas las demos de Visual Studio Lightswitch usan SQL-Server, es posible acceder a los datos de Oracle usando Visual Studio Lightswitch?¿Puede Visual Studio Lightswitch conectarse a una base de datos Oracle?

+0

ver también http://meta.stackexchange.com/questions/59759/what-should-the-tag-for- visual-studio-lightswitch-be –

+0

Ian: Dejé una respuesta para ti. Tiene tres opciones (1) Oracle ODP.Net 11.2 R4, (2) Controladores de terceros $$$, y (3) Código abierto. @Matt Eisenberg estaba en el camino correcto, pero hay más opciones. –

Respuesta

5

Visual Studio interruptor de la luz se puede conservar a una base de datos Oracle a través del marco de la entidad.

  1. Oracle Data Provider (ODP.Net)

    Herramientas ODAC de Oracle contiene el proveedor de datos de Oracle (ODP.Net) para su uso con aplicaciones de Visual Studio. El último controlador de Oracle con soporte para Entity Framework 4.1 y el enfoque "Model First".

    EDITAR: No estoy seguro si es compatible con "Code-First" o EF 4.2, así que verifique la documentación. Dicho esto, es gratis y es compatible con Oracle, por lo que recomendamos encarecidamente comenzar aquí antes de lanzar el suyo propio, o usar proveedores/controladores de código abierto.

    Download ODP.Net 11.2.0.3

    EF Tutorial w/ ODP.Net

    Notas: "11.2.0.2 versión 4" se cortarlo, pero "es 11.2.0.3" y más estable.

  2. controladores de terceros están disponibles para su compra:

    docConnect for Oracle

    DevArt's ADO.Net Provider for Oracle

  3. proveedores de código abierto

    Además hay algunas opciones de código abierto disponible - uno que encontré o n Github:

    https://github.com/object/NorthwindOData


Tutorial sobre MSDN: How to Connect Lightswitch to EF 4.1

+0

¿Hay alguna versión de las herramientas ODAC de Oracle que no esté en versión beta pero que esté completamente al día con la versión de envío de .net? –

+0

Sí. Olvidé editar mi respuesta: 11.2.0.3 está completamente publicado, no es beta ... y es compatible con Entity Framework 4.1 - advertencia: admite "modelo primero" y "4.1" ... tendría que leer documentación o pregunte al Soporte si los enfoques 4.1 y Code-First son buenos. –

7

Sí, si puede obtener un proveedor de terceros para el marco de entidades. De hecho, hice esta pregunta en VSLive esta semana.

+0

¿cuánto cuesta el proveedor de terceros para el marco de la entidad? ¿Y alguien necesita saber cómo programar para conectarlo a Lightswitch? –

+0

http://web.datadirect.com/products/net/net-for-oracle/index.html. No estoy seguro acerca de la segunda parte de su pregunta. –

+0

En cuanto a la segunda parte, creo que una vez que está instalada en la máquina de la persona, simplemente la eligen como fuente de datos. Necesitarán conocer la información de conexión, como si estuvieran usando cualquier otra fuente de datos. Pero no debería necesitar conocimientos de programación para conectarlo. –

0

El LightSwitch training kit tiene un ejercicio dedicado al uso de fuentes de datos alternativas a través de los servicios WCF RIA.

Puede que le resulte útil.

3

He utilizado la última versión de ODAC 11.2 4 (11.2.0.3.0) que admite Entity Framework, y funciona bien.

Si recibe este error, "mensaje de excepción interior: conexión ya es parte de una transacción distribuida local o"

puede resolver el problema siguiendo el segundo mensaje por BScholz, https://forums.oracle.com/forums/thread.jspa?threadID=2263095

Básicamente , debe implementar SaveChanges_Excuting y SaveChanges_Excuted para Oracle Data Source.

  1. Cambie a "Vista de archivo" (LightSwitch mostrará "Vista lógica" de manera predeterminada).
  2. Agregue una referencia a "System.Transactions" en el proyecto del servidor.
  3. Volver a "Vista lógica"
  4. Haga clic con el botón derecho en el Nombre de la fuente de datos y haga clic en "Ver código" para editar la clase parcial.
  5. Copiar y pegar el código de abajo:

    private TransactionScope _tscope; 
    
    partial void SaveChanges_Executing() 
    { 
        _tscope = new TransactionScope(TransactionScopeOption.Required, 
        new TransactionOptions 
        { 
         IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted 
        }); 
    } 
    
    partial void SaveChanges_Executed() 
    { 
        _tscope.Complete(); 
        _tscope.Dispose(); 
    } 
    
Cuestiones relacionadas