我无法让实体框架针对 SQL Azure 工作。这只是我还是不打算兼容?(我已经尝试了带有 VS2008 的 EF 原始版本以及更新的 VS2010 Beta 2 版本)
为了检查这一点,我创建了最简单的场景。将单个表添加到本地 SQL Server 2008 实例。该表有两列,一个整数类型的主键和一个字符串列。我在表中添加了一行,其值为 (1, foobar)。然后,我将完全相同的设置添加到我的 SQL Azure 数据库中。
创建了一个控制台应用程序并从本地数据库生成了一个 EF 模型。运行应用程序,一切都很好,可以从一个简单的查询中返回单行。更新连接字符串以连接到 SQL Azure,现在它失败了。它连接到 SQL Azure 数据库没有问题,但查询在处理结果时失败。
我使用异常信息追踪了最初的问题。概念模型为我的单个定义实体的实体集设置了属性 Schema="dbo"。我删除了此属性,现在它因另一个错误而失败...
"Invalid object name 'testModelStoreContainer.Test'."
其中“测试”当然是我定义的实体的名称,因此看起来它正在尝试从返回的结果中创建实体。但由于某种未知的原因,无法解决这个琐碎的场景。
所以要么我犯了一个非常基本的错误,要么 SQL Azure 与 EF 不兼容?这对我来说似乎很疯狂。我想在我的 WebRole 中使用 EF,然后在 Silverlight 客户端使用 RIA 服务。