2012-02-10 113 views
0

我在使用带有Ling2SQL的.sdf数据库文件时遇到问题。我在.NET 3.5上使用VS2010。什么到目前为止,我已经做了:带有MS SQL Server Compact 3.5 SP2的LINQ2SQL:BadImageFormatException

  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

我不知道如何解决它。任何帮助?

+0

BadImageFormatException通常表示x64与x86程序集的区别。你机器的架构是什么?你在IIS中托管? – 2012-02-10 11:00:24

回答

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 

现在是工作!

相关问题