2011-08-09 1 views
1

J'essaie d'accéder à ma base de données Oracle XE à l'aide de Visual C# Express et de l'infrastructure d'entité.Base de données Visual C# Express et Oracle Express à l'aide du framework d'entité

J'ai essayé d'installer oracleef (http://oracleef.codeplex.com/) mais je ne reçois pas le fournisseur Oracle EF dans Visual C# Express ajouter Assistant de connexion EF, bien que machine.config contient

<DbProviderFactories> 
    <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
</DbProviderFactories> 

J'ai essayé d'utiliser EdmGen2. exe pour générer manuellement des classes EF à partir de la base de données, mais j'ai eu peu de succès. Comment puis-je utiliser conjointement la base de données Oracle, Visual C# Express et Entity Framework?

+0

s'il est intéressant de quelqu'un, la solution finale pour moi était d'utiliser NHibernate, FluentNHibernate et NHibernateMappingGenerator. – Emir

Répondre

1

VS Express ne prend pas en charge les composants tiers tels que les assistants de connexion DB. Vous devrez configurer la connexion manuellement (et créer le modèle d'entité manuellement, aussi ... donc je vous suggère d'utiliser EF Code First)

+0

Comment faisons-nous cela? "configurer la connexion manuellement", comment exactement? –

1

Vous pouvez installer Oracle Client Instant avec ODP.Net et ajouter Oracle.DataAccess comme référence à votre projet. Après cela, vous pouvez vous connecter à votre base de données, comme ceci:

using Oracle.DataAccess.Client; 
using Oracle.DataAccess.Types; 

private OracleConnection Connect = new OracleConnection(); 

public int OracleConnect(string hostname, string username, string password, string servicename) 
{ 
    Connect.ConnectionString = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" + hostname + ") (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=" + servicename + ")));" + "User Id=" + username + ";Password=" + password + ";"; 
    try 
    { 
     Connect.Open(); 
     return 0; 

    } 
    catch (OracleException OracleExeption) 
    { 
     return -1; 
    } 
} 
Questions connexes