我想将所有会员资格和数据存储在同一个数据库中。我首先创建了一个名为 MembershipDB 的数据库,其中我使用aspnet_regsql.exe添加了成员资格模式。
我正在使用Internet ASP.NET MVC4模板。所以这是连接字符串
<connectionStrings>
<remove name="DefaultConnection"/>
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MembershipDB.mdf;
Integrated Security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
当我创建用户时,我在先前创建的 MembershipDB 数据库中看不到任何数据。相反,我看到另一个名为 MembershipDB.mdf 的数据库,它创建并包含数据。
为什么我的数据库没有获取数据,而是正在创建另一个具有相同名称的数据库?代码优先只有在找不到具有相同名称的数据库时才会创建新数据库。
感谢您的帮助。
答案 0 :(得分:1)
您的连接字符串指定 MembershipDBA.mdf 的初始目录(数据库)。将其更改为 MembershipDB 。 .mdf部分只是数据库数据部分的标准文件扩展名。除非您专门更改与文件有关的内容,否则无需引用它。
答案 1 :(得分:1)
只需使用不带.mdf扩展名的连接字符串中的数据库名称。
设置connectionStringName =&#34; MembershipDB&#34;在web.config的“成员身份”部分
答案 2 :(得分:0)
我认为最好的方法(我一直使用它)是观察和观察其他人在这些情况下做的事情并在他们之后重复。
这是一篇关于如何一起使用EF和会员资格的文章(虽然EF 4.1,而不是5)(如果我理解你的问题,这就是你所追求的:
Using Entity Framework Code First and ASP.NET Membership Together
以下是关于SO(同一主题)的成功回答问题(想知道在问你之前你怎么没找到这个问题):
Best database design approach to join complex data to ASP.Net Membership tables
如果有帮助,请告诉我。