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