LINQ2SQL with MS SQL Server Compact 3.5 SP2: BadImageFormatE



我在使用带有Ling2SQL的.sdf数据库文件时遇到问题。我正在.NET 3.5上使用VS2010。到目前为止我所做的:

  1. 创建了sdf文件并添加了表和数据(位于项目文件夹中)
  2. 将SQLMetal.exe和SQLMetal.exe.config复制到项目文件夹,并使用调用它

    SQLMetal.exe database.sdf /dbml:DataOffline.dbml /namespace:CTcalc /pluralize
    
  3. 将dbml文件添加到项目中(创建了designer.cs)

  4. 向designer.cs 添加新方法

    public DataOfflineDataContext() : 
            base(global::CTcalc.Properties.Settings.Default.databaseOfflineConnectionString, mappingSource)
    {
        OnCreated();
    }
    
  5. 将connectionString添加到设置文件(类型:connectionString)

    Data Source=|DataDirectory|database.sdf
    
  6. 使用连接:

    using (DataOfflineDataContext dc = new DataOfflineDataContext())
                lProtFunc = (from c in dc.ProtectionFunctions select c).ToList();
    

调试我的项目时,我收到一个BadImageFormatException错误,HRESULT:0x8007000B

我不知道怎么修。有什么帮助吗?

您必须在x64系统上同时安装x86和x64运行时-http://www.microsoft.com/download/en/details.aspx?id=5783

我的错误是在项目中使用了错误的.dll。

我使用

Program FilesMicrosoft SQL Server Compact Editionv3.5DesktopSystem.Data.SqlServerCe.dll

而不是

Program FilesMicrosoft SQL Server Compact Editionv3.5PrivateSystem.Data.SqlServerCe.dll

现在它开始工作了!

最新更新