C# 数据未插入Azure Sql数据库
这是我第一次使用Azure,我遇到了一些问题 我在我的MVC项目中有一个注册和登录脚本,它在我的本地机器上运行良好,但是当我尝试使用Azure时,我在“处理您的请求时发生错误”页面上收到此消息 我已经允许IP进入防火墙。 我已将数据库与该网站链接 该项目使用代码优先模型。当我尝试注册时,它将在数据库中创建表,但不会输入用户数据。所以我只剩下一张空桌子了 另外,当我尝试从Sql management studio部署数据库时,它会创建表,但无法输入数据 我做错了什么 编辑: 所以,当我尝试从SQL Management Studio部署数据库时,这就是我在导入数据库时遇到的错误C# 数据未插入Azure Sql数据库,c#,sql,asp.net-mvc,azure,azure-sql-database,C#,Sql,Asp.net Mvc,Azure,Azure Sql Database,这是我第一次使用Azure,我遇到了一些问题 我在我的MVC项目中有一个注册和登录脚本,它在我的本地机器上运行良好,但是当我尝试使用Azure时,我在“处理您的请求时发生错误”页面上收到此消息 我已经允许IP进入防火墙。 我已将数据库与该网站链接 该项目使用代码优先模型。当我尝试注册时,它将在数据库中创建表,但不会输入用户数据。所以我只剩下一张空桌子了 另外,当我尝试从Sql management studio部署数据库时,它会创建表,但无法输入数据 我做错了什么 编辑: 所以,当我尝试从SQL
TITLE: Microsoft SQL Server Management Studio
------------------------------
Could not import package.
Warning SQL0: A project which specifies SQL Server 2012 as the target platform may experience compatibility issues with SQL Azure.
Error SQL72014: .Net SqlClient Data Provider: Msg 40511, Level 15, State 1, Line 2 Built-in function 'newsequentialid' is not supported in this version of SQL Server.
Error SQL72045: Script execution error. The executed script:
ALTER TABLE [dbo].[Domains]
ADD DEFAULT (newsequentialid()) FOR [DomainId];
(Microsoft.SqlServer.Dac)
我想这是因为我的模型使用GUID。这可能是Azure上的数据库出现所有这些问题的原因吗?如果没有任何代码,很难说发生了什么,但很可能您忘记了将条目提交到表中。可能会对您有所帮助。错误消息大致描述了您的问题:
Warning SQL0: A project which specifies SQL Server 2012 as the target platform may
experience compatibility issues with SQL Azure.
Error SQL72014: .Net SqlClient Data Provider: Msg 40511, Level 15, State 1, Line 2
Built-in function 'newsequentialid' is not supported in this version of SQL Server.
SQL Server和Azure SQL是(即使差距已经迅速缩小):
目前,Azure SQL数据库不支持SQL Server的所有功能。有关详细的比较信息,请参阅Azure SQL数据库指南和限制。当您想要将现有数据库移动到Azure SQL数据库时,请注意这一点,因为您可能需要一些额外的预算来重新设计数据库
因此,您的问题是,您正在使用一个不受支持的功能
newsequentialid
上周晚些时候,Azure发布了最新版本的Azure SQL DB预览,在该预览中,newsequentialid现在受支持,还有许多以前不可用的其他功能
要使用最新版本创建数据库,请使用新门户网站,并遵循屏幕上的指导,在创建新Azure数据库时邀请您使用预览版。简单的回答是,如果您只需要一个唯一的Guid,只需将所有
newsequentialid()
更改为newid()
这是一篇很好的参考博客文章,由Microsoft Azure团队发布
在有关newsequentialid()
的部分中,它描述了区别:
如果NEWID()函数生成唯一的非顺序
函数的作用是:生成唯一的
顺序唯一标识符。NEWSEQUENTIALID()的唯一窍门
功能是基于网络部分生成guid
电脑卡
此外,甚至不建议使用newsequentialid()
,因为
(i) t可以猜测下一个生成的GUID的值,
因此,请访问与该GUID关联的数据
当您尝试插入或创建某些内容时,您会收到什么exect错误消息?显示一些代码,Jacob。我不确定要向您显示什么代码,因为我刚刚意识到任何页面需要数据库才能进行用户登录或其他操作,从而导致
在处理您的请求时出错。
。一切都可以在本地运行,但不能在Azure上运行。只需通过谷歌搜索“newsequentialidazure”就会提示您应该切换到uniqueidentifier/newid()
用于您的DomainId
列。我尝试过这个方法,但是当我单击新版本时,它会重定向到Microsoft的主页。如果您尝试此页面上的SQL数据库更新预览链接,它是否对您有效: