使用实体框架的Visual C#Express和Oracle database Express
我正在尝试使用Visual C#Express和实体框架访问我的Oracle XE数据库 我已尝试安装oracleef(),但我无法在Visual C#Express添加EF连接向导中获得Oracle EF提供程序,尽管machine.config包含使用实体框架的Visual C#Express和Oracle database Express,oracle,entity-framework,visual-c#-express-2010,Oracle,Entity Framework,Visual C# Express 2010,我正在尝试使用Visual C#Express和实体框架访问我的Oracle XE数据库 我已尝试安装oracleef(),但我无法在Visual C#Express添加EF连接向导中获得Oracle EF提供程序,尽管machine.config包含 <DbProviderFactories> <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description
<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>
我曾尝试使用EdmGen2.exe从数据库手动生成EF类,但收效甚微
如何将Oracle数据库、Visual C#Express和Entity Framework结合使用?VS Express不支持第三方组件,如数据库连接向导。您必须手动配置连接(并且手动创建实体模型…因此我建议您首先使用EF代码)您可以使用ODP.Net安装oracle Instant Client,并将oracle.DataAccess添加到您的项目中作为参考。 之后,您可以连接到数据库,如下所示:
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;
}
}
如果有人对此感兴趣,我的最终解决方案是使用NHibernate、FluentNHibernate和NHibernateMappingGenerator。我们如何做到这一点?“手动配置连接”,具体如何?