LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException
Posted
技术标签:
【中文标题】LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException【英文标题】:LINQ2SQL with MS SQL Server Compact 3.5 SP2: BadImageFormatException 【发布时间】:2012-02-10 10:20:29 【问题描述】:我在使用 Ling2SQL 的 .sdf 数据库文件时遇到问题。我正在.NET 3.5 上使用 VS2010。到目前为止我做了什么:
-
创建 sdf 文件并添加表格和数据(位于项目文件夹中)
将 SQLMetal.exe 和 SqlMetal.exe.config 复制到项目文件夹并调用它:
SQLMetal.exe database.sdf /dbml:DataOffline.dbml /namespace:CTcalc /pluralize
将 dbml 文件添加到项目中(创建了 designer.cs)
向 Designer.cs 添加新方法
public DataOfflineDataContext() :
base(global::CTcalc.Properties.Settings.Default.databaseOfflineConnectionString, mappingSource)
OnCreated();
将连接字符串添加到设置文件(类型:连接字符串)
Data Source=|DataDirectory|\database.sdf
使用连接:
using (DataOfflineDataContext dc = new DataOfflineDataContext())
lProtFunc = (from c in dc.ProtectionFunctions select c).ToList();
在调试我的项目时,我收到一个 BadImageFormatException 错误,HRESULT: 0x8007000B
我不知道如何解决它。有什么帮助吗?
【问题讨论】:
BadImageFormatException 通常意味着 x64 与 x86 程序集的差异。你的机器的架构是什么?您是否在 IIS 中托管? 【参考方案1】:您必须在 x64 系统上同时安装 x86 和 x64 运行时 - http://www.microsoft.com/download/en/details.aspx?id=5783
【讨论】:
【参考方案2】:我的错是在我的项目中使用了错误的 .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
现在它正在工作!
【讨论】:
以上是关于LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException的主要内容,如果未能解决你的问题,请参考以下文章
LINQ2SQL + PLINQO:如何处理这样的简单情况?
在两个索引表上使用组和连接进行单独 LINQ2SQL 选择与一个组合选择的性能