我正在尝试在asp.net mvc5空白项目中使用成员资格。我正在使用db first方法并为此安装了apsnet_regsql
。在我创建了vs2012互联网应用程序并复制了模型,过滤器,控制器和视图中的所有内容之后。
但是我遇到了一个问题。当我尝试访问登录(或其他东西)时,它会引发异常:
发生了'System.ArgumentException'类型的异常 System.Data.dll但未在用户代码中处理
其他信息:无法找到所请求的.Net Framework 数据提供者。它可能没有安装。
这是我的连接字符串:
<add name="CSharpAssignmentDbContext" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string="data source=GIORGI\SQLEXPRESS;initial catalog=CSharpAssignmentDb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
起初我遇到了另一个问题,而不是找到here
在您的网络应用程序的根目录中创建一个名为_AppStart.cshtml的文件 把它放进去:
@{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId",
"UserName", autoCreateTables: true);
}
}
它出了什么问题?我先使用最新的EF 6.1.3 Db
答案 0 :(得分:0)
我发现here
除了edmx之外,您不能将该连接字符串用于其他任何内容 连接。我在web.config中使用它的方式使网站使用 会员资格的相同连接字符串也是如此 与System.Data.EntityClient提供程序兼容并且需要 在我的情况下System.Data.Sqlclient。添加第二个连接字符串, 减去实体框架中的内容并将其引用 web.config中的成员资格提供程序属性将删除所有 错误并允许页面呈现并从SQL请求内容 服务器
所以我添加了第二个连接字符串
<add name="DefaultConnection" connectionString="Data Source=.\SQLExpress;Initial Catalog=CSharpAssignmentDb;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
它解决了我的问题