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

Entity framework 在Sql Azure上,重复数据库显示在方括号中,entity-framework,azure,azure-sql-database,Entity Framework,Azure,Azure Sql Database,我有一个SQL Azure数据库,名为钯 我刚刚登录到WindowsAzure门户,钯现在出现了两次,副本名为[Paradian],带方括号 知道这是什么吗 我首先使用的是代码,我一直在摸索不同的连接字符串(今天出现了严重的问题…),它们实际上都是出于某种原因指定了[钯]。当我进入新的链接并单击以生成连接字符串时,它实际上会显示[[Paradial]]]。是的,这是最后的三个方括号 我首先在代码中使用实体框架,但据我所知,实际删除和修改数据库的部分是禁用的 解决方案:我仍然不知道那个数据库是什么

我有一个SQL Azure数据库,名为钯

我刚刚登录到WindowsAzure门户,钯现在出现了两次,副本名为[Paradian],带方括号

知道这是什么吗

我首先使用的是代码,我一直在摸索不同的连接字符串(今天出现了严重的问题…),它们实际上都是出于某种原因指定了[钯]。当我进入新的链接并单击以生成连接字符串时,它实际上会显示[[Paradial]]]。是的,这是最后的三个方括号

我首先在代码中使用实体框架,但据我所知,实际删除和修改数据库的部分是禁用的


解决方案:我仍然不知道那个数据库是什么。它看起来是空的,门户似乎被它弄糊涂了(不允许我删除它,选择某些东西等等)。然而,通过SSMS,我能够毫无问题地放弃它,现在一切似乎都很好

Brian,尽管您似乎已经解决了您的特定问题,但我想在这里添加一条消息,因为这是针对数据库名中有[]方括号问题的用户的第一个Google搜索结果之一

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

这解决了我的问题,几个月来我一直在做这件事,没有任何问题。仍然不知道为什么Azure将[]放在首位


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

我可以告诉您创建数据库的原因-它是由ASP.Net通用提供商创建的

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

这些提供程序的功能之一是,它们可以在数据库中自动为您创建成员资格表。这就是发生在你身上的事情——正如Gary的回答所示,web.config的周围有方括号。因此,成员表的自动创建将连接字符串按字面意思处理,并创建了一个带有方括号的DB


我很想知道您是否在web.config中保留了方括号,只是删除了数据库。如果它是在这些条件下开始工作的,那么这就向我表明这一定是一个Azure错误。

我认为我的问题的根源在于链接资源存在一些违反直觉(甚至丑陋)的东西。当我将SQL数据库链接到我的网站时,我没有意识到“网站>配置>连接字符串”下的连接字符串旨在覆盖Web.config中的任何内容,这与查看ADO.NET连接字符串DB!时得到的结果不同!。这导致了各种尝试和调整,但都失败了。我不知道是哪种连接串部件的组合导致了[钯]的产生。我刚检查过,网站>配置中的那个(唯一重要的)没有括号。在我的例子中,它创建的连接字符串被称为Palladium,我不得不将其重命名为PalladiumContext,因为这就是我的名称。我不知道是否可以删除生成的连接并将此连接字符串放入我的web.config转换中,或者这些“链接资源的连接字符串”是否有特殊之处。一点实验就会证明这一点。但这个小怪癖花了我好几个小时才弄明白。