在 ASP.NET MVC 项目(使用 Entity Framework 4.1 代码优先方法)中,我添加了对 C:\Program Files\FirebirdClient\FirebirdSql.Data.FirebirdClient.dll 的引用。
Web.config 中的配置如下所示:
<system.data>
<DbProviderFactories>
<remove invariant="FirebirdSql.Data.FirebirdClient"/>
<add
name="Firebird Data Provider"
invariant="FirebirdSql.Data.FirebirdClient" description="Firebird"
type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=2.6.5.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c"
/>
</DbProviderFactories>
</system.data>
连接字符串如下所示(数据库不存在,应从实体框架生成):
<add name="AdvertiserDatabase"
connectionString="ServerType=1;User=SYSDBA;Password=masterkey;Dialect=3;Database=|DataDirectory|AdvertiserDb.fdb"
providerName="FirebirdSql.Data.FirebirdClient"/>
将所有需要的文件(firebird.msg、icu*30.dll)添加到bin文件夹,还添加了文件夹 intl 和 udf。
将 fbembed.dll 重命名为 fbclient.dll。
在运行时我收到以下错误:无法加载 DLL 'fbembed':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)
出了什么问题?这应该工作!
提前致谢
编辑 在输出窗口中,我注意到以下消息(这让我很困惑):
WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'FB_965910463.dll'
A first chance exception of type 'System.DllNotFoundException' occurred in FB_965910463.dll
A first chance exception of type 'System.DllNotFoundException' occurred in FirebirdSql.Data.FirebirdClient.dll
A first chance exception of type 'System.Data.ProviderIncompatibleException' occurred in System.Data.Entity.dll
A first chance exception of type 'System.Data.ProviderIncompatibleException' occurred in EntityFramework.dll
A first chance exception of type 'System.Data.ProviderIncompatibleException' occurred in System.Web.Mvc.dll
A first chance exception of type 'System.Data.ProviderIncompatibleException' occurred in System.Web.Mvc.dll
A first chance exception of type 'System.NotSupportedException' occurred in mscorlib.dll
A first chance exception of type 'System.NotSupportedException' occurred in mscorlib.dll