在Sql Azure上,重复的数据库显示在方括号中

时间:2013-03-19 21:47:16

标签: entity-framework azure azure-sql-database

我有一个名为Palladium的SQL Azure数据库。

我刚登录到Windows Azure门户,Palladium现在出现两次,副本名为[Palladium],方括号。

知道这是什么吗?

我正在使用Code First,我一直在使用不同的连接字符串(今天的严重问题......),并且由于某些原因它们实际上都指定了[Palladium]。当我进入新的并单击以生成连接字符串时,它实际上显示[[Palladium]]]。那是对的,最后是三个方括号。

使用Entity Framework和Code First,但据我所知,实际删除和修改数据库的部分已被禁用。

解决方案:我仍然不知道该数据库是什么。它似乎是空的,门户网站似乎对它感到困惑(不要让我删除它,选择某些东西等)。然而,通过SSMS,我能够放弃它没有问题,现在一切似乎都很好。

2 个答案:

答案 0 :(得分:1)

Brian,即使你似乎已经解决了你的特定问题,我想在这里添加一条消息,因为这是人们在数据库名称中遇到[]方括号问题的人的第一个Google搜索结果之一。

我以前遇到过这个问题,数据库名称在azure上看起来有方括号[]。就我而言,它不是代码优先。假设我使用Azure门户创建一个新数据库,并将其命名为Palladium。为了获取它的连接字符串,我转到sql数据库的仪表板页面,然后单击右侧显示的“show connection strings”链接。此连接字符串需要放在web.config文件中,替换connectionstring =“”的内容。 在此之前,请注意由于某种原因连接字符串包含字符串“Database = [Palladium]”。我相信你已经注意到了这一点。这是一个问题..我不知道为什么Azure坚持在数据库名称周围放置[],但是在使用它作为连接字符串之前,必须从单词Palladium周围删除这些方括号。 (另请不要忘记用实际密码替换字符串“{your_password_here}”。)

这解决了我的问题,而且我已经这样做了几个月,现在没有问题。仍然不知道为什么Azure首先放置[]。

我认为这个解决方案甚至适用于使用codefirst的人,因为你仍然需要在Azure上创建数据库并获取连接字符串,因为代码首先创建表,而不是db本身。

答案 1 :(得分:1)

我可以告诉你db创建的原因 - 它是由ASP.Net通用提供商创建的。

如果您已经检查了[Palladium]数据库中的表格,那么您只会注意到ASP.Net通用提供商使用的成员资格表格。 (应用程序,成员资格,配置文件,角色,用户和用户角色)

这些提供程序的一个功能是它们可以在您的数据库中自动为您创建成员资格表。这就是你发生的事情 - 在Gary.答案的指示下,web.config周围有方括号。因此,成员资格表的自动创建过于字面意义地使用了该连接字符串,并使用方括号创建了一个DB。

我很想知道您是否在web.config中删了方括号并删除了数据库。如果它在这些条件下开始工作,那么这表明这必须是Azure bug。