LINQ2SQL与MS SQL Server Compact 3.5 SP2:BadImageFormatException

时间:2012-02-10 10:20:30

标签: c# linq linq-to-sql sql-server-ce

我在使用带有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添加到设置文件(type:connectionString)

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

    using (DataOfflineDataContext dc = new DataOfflineDataContext())
                lProtFunc = (from c in dc.ProtectionFunctions select c).ToList();
    
  7. 调试我的项目时,我遇到HRESULT的BadImageFormatException错误:0x8007000B

    我不知道如何修复它。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

我用过

Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll

而不是

Program Files\Microsoft SQL Server Compact Edition\v3.5\Private\System.Data.SqlServerCe.dll

现在它正在运作!