Entity framework 在EF和SqlRoleProvider之间共享SQLExpress数据库

Entity framework 在EF和SqlRoleProvider之间共享SQLExpress数据库,entity-framework,connection-string,roleprovider,Entity Framework,Connection String,Roleprovider,我在SQLExpress 2008中有一个数据库,我正在通过EF4连接访问该数据库。它还包含网站的ASP.Net角色提供程序表。在web.config中,有两个单独的连接字符串指向同一数据库。在调试数据库时,我遇到以下错误: 无法打开物理文件 “D:\TFS\Main\Source\TestWeb\TestWeb\App\u Data\TestDB.mdf”。 操作系统错误32:“32(失败 检索此错误的文本。 理由:15105)”。试图附加 文件的自动命名数据库 D:\TFS\Main\Sou

我在SQLExpress 2008中有一个数据库,我正在通过EF4连接访问该数据库。它还包含网站的ASP.Net角色提供程序表。在web.config中,有两个单独的连接字符串指向同一数据库。在调试数据库时,我遇到以下错误:

无法打开物理文件 “D:\TFS\Main\Source\TestWeb\TestWeb\App\u Data\TestDB.mdf”。 操作系统错误32:“32(失败 检索此错误的文本。 理由:15105)”。试图附加 文件的自动命名数据库 D:\TFS\Main\Source\TestWeb\TestWeb\App\u Data\TestDB.mdf 失败。同名数据库 存在,或无法删除指定的文件 已打开,或位于UNC共享上


我假设这意味着两个不同的连接字符串不能同时连接到SQLExpress数据库

以下是连接字符串:

<add name="SqlRoleManagerConnection"
     connectionString="data source=.\SQLEXPRESS;
     Integrated Security=true;AttachDBFilename=|DataDirectory|TestDB.mdf;
     User Instance=false;MultipleActiveResultSets=True"/>

<add name="TestDBEntities"
     connectionString="metadata=res://*/TestDB.csdl|res://*/TestDB.ssdl|res://*/TestDB.msl;
     provider=System.Data.SqlClient;
     provider connection string=&quot;Data Source=.\SQLEXPRESS;
     AttachDbFilename=|DataDirectory|\TestDB.mdf;
     Integrated Security=True;User Instance=false;
     MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

每个连接管柱上缺少开口角括号是故意的,这是因为SO的限制


你知道我该如何解决这个问题吗?

我有同样的情况:EF和角色提供者连接到同一个数据库,还有两个连接字符串。但是我的ConnectionString中没有“AttachDBFilename…”,而是在RoleManager ConnectionString
Database=MyDb
和EF ConnectionString
Initial Catalog=MyDb
中。在SQLServerManagementStudio中,我已将物理数据库连接到对象资源管理器,并命名为
MyDb
。这很有效。别问我为什么。关于连接字符串,我处于“让向导来做这些事情”的级别。他们以这种方式创建了字符串。

@Colin:发布任何类型的代码(包括XML)时,需要突出显示有问题的行,然后单击编辑器工具栏上的“代码”按钮(101 010),以启用格式良好且语法突出显示的代码。这是SO的一个特性(不是限制)…“我假设这意味着两个不同的连接字符串不能同时连接到SQLExpress数据库?”不,这肯定不是真的。问题在别处。