带有Entity Framework的MVC3连接字符串

时间:2011-12-20 01:01:14

标签: asp.net asp.net-mvc-3 entity-framework

正如我一直关注MusicStore教程,新的MVC3项目为我创建了以下连接字符串:

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />

我的模型表是在。\ SQLEXPRESS 中创建的,所有用户/角色表都存储在App_Data文件夹中的 aspnetdb.mdf 中。 我想在我的。 \ SQLSERVER或localhost 上安装模型表和用户/角色表,而不是分散在。\ SQLEXPRESS和mdf文件之间。我正在努力使用正确的连接字符串。有人能建议合适吗?

执行此操作的每个人都必须确保连接字符串的名称应该是从* DbContext *

派生的上下文类的名称

1 个答案:

答案 0 :(得分:1)

听起来您需要在ApplicationServices数据库上运行aspnet_regsql。您可以在C:\ Windows \ Microsoft.Net \ Framework \ 4.xxx \ aspnet_regsql.exe中找到它。

默认项目使用ApplicationServices db作为成员资格,角色和配置文件的默认值。 sproc dbo.aspnet_CheckSchemaVersion是ASP.NET SQL Membership Provider模式中的一个sproc。

对评论#1的回复

您的计算机上是否运行了名为SQLSERVER的数据库实例?如果asp.net无法使用您的连接字符串找到数据库,那么您提到的例外是常见的。

对评论#2的回应

这是有道理的。 Integrated Security = true告诉连接使用运行MVC应用程序(通常是IIS应用程序池)的进程来进行sql server登录。如果您从Visual Studio / Web Developer Express /等进行测试,则Web服务器可能正在使用您的Windows帐户运行。因此,如果您可以对数据库服务器进行Windows身份验证,MVC也应该能够。

User Instances are meant for SQLEXPRESS