使用 sdf 文件的 Linq to SQL 异常

Posted

技术标签:

【中文标题】使用 sdf 文件的 Linq to SQL 异常【英文标题】:exception with Linq to SQL using sdf file 【发布时间】:2010-03-08 21:48:08 【问题描述】:

我已经使用 SDF 本地数据库文件设置了一个项目,并尝试使用 LINQ To SQL (".dbml") 文件访问它。我已经使用了 sdf 文件提供的连接字符串,并且可以毫无问题地实例化对象:

thisDataContext = new MyDataContext(GetConnectionString());

但是,每当我尝试从中访问任何信息时,例如

var collection = (from MyObject p in thisDataContext.MyTable select p);

我得到了错误 -

"表名无效。[Token line number (if known) = 2,Token line offset (if known) = 14,Table name = Person]"

我正在使用 Visual Studio 2008 SP1 .Net 3.5 和 SQL 2008 CE。

我收集到 SQL 2005 CE 发生了类似的事情,并且发布了一个修补程序,但我原以为该修补程序会在发布之前在此版本中修复。

有人知道解决办法吗?

谢谢

【问题讨论】:

【参考方案1】:

去掉Linq to Sql创建的对象的Table属性中的“dbo”

例如:

[Table(Name="dbo.Orders")]
class Order



将其更改为:

[Table(Name="Orders")]
class Order



【讨论】:

感谢@BFree,这就像一个魅力。我一直在寻找修复方法。

以上是关于使用 sdf 文件的 Linq to SQL 异常的主要内容,如果未能解决你的问题,请参考以下文章

Linq-to-SQL 数据库文件为空

Linq To Sql:数据库版本不兼容

使用 LINQ To SQL / SQL CE 创建表

将 SQL Server CE 数据库 (.sdf) 从 3.5 更新到 4.0

在 C# 中使用 LINQ 方法语法 (LINQ to SQL) 时发生异常

将 vs2008 迁移到 vs2012 - 异常 LINQ to SQL 库