由于我不想讨论的原因,我们的主数据库架构目前仅在 SQL Azure 中。我们正在使用像 Enzo Backup 这样的工具在本地将其关闭(我们正在等待他们的开发人员修复我们在尝试下载时遇到的一些错误),但与此同时,我想生成一个 Linq-to-Sql来自 SQL Azure DB 架构的 ORM 映射。当我尝试这样做时,输出会生成一堆错误消息,如下所示:
警告:SQM1012:无法从 SqlServer 中提取表 'dbo.[TableName]'。无效的对象名称“syscomments”。
是否可以从 SQL Azure 数据库生成 ORM 映射?
编辑
请注意,即使在最新版本 (2008 R2) 中,从 SSMS 生成脚本也不起作用。当您尝试在 SQL Azure 数据库实例上生成脚本时,您在生成的报告中收到以下错误,并且在处理第一个对象之前它就失败了:
System.IndexOutOfRangeException:索引超出了数组的范围。在 Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker_DoWork(Object sender, DoWorkEventArgs e) 在 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) 在 System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object 参数)
编辑 2
我只是尝试使用免费的SMOscript工具,它会生成相同类型的错误消息:
Objects in database [DatabaseName] on server [ServerAddress]:
Error: Index was outside the bounds of the array.
因此,目前看来,轻松生成 DDL 脚本是不可能的,而且它在 2008 R2 的SMO级别针对 SQL Azure DB 被破坏了。