我试图从EntityFramework v5转到v6,并且我正在做所有必要的更改。但我收到以下错误:
无法找到请求的.Net Framework数据提供程序。它可能没有安装。
在
public static void RegisterAuth()
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
我认为问题可能来自我的connectionString:
<connectionStrings>
<add name="DefaultConnection" connectionString="metadata=res://*/Models.CRA2.csdl|res://*/Models.CRA2.ssdl|res://*/Models.CRA2.msl;provider=System.Data.SqlClient;provider connection string="data source=MMSDEVNEW\SQL2008;initial catalog=CRAV34;persist security info=True;user id=sa;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
切换到EF6所做的所有更改可能都会导致问题,我无法弄清楚原因。
编辑:
遵循Guruprasad Rao指南后,我添加了EF字符串,默认情况下给出了以下内容:
<connectionStrings>
<add name="CRAV34Entities3"
connectionString="metadata=res://*/Models.CRA2.csdl|
res://*/Models.CRA2.ssdl|
res://*/Models.CRA2.msl;provider=System.Data.SqlClient;
provider connection string="data source=MMSDEVNEW\SQL2008;
initial catalog=CRAV34;
persist security info=True;
user id=sa;
multipleactiveresultsets=True;
application name=EntityFramework""
providerName="System.Data.EntityClient" />
<add name="DefaultConnection"
connectionString="packet size=4096;Data Source=MMSDEVNEW\SQL2008;Initial Catalog=CRAV34;User ID=sa;Password=as0;"
providerName="System.Data.SqlClient" />
</connectionStrings>
这给了我错误
无法初始化ASP.NET Simple Membership数据库。
它似乎发生在这里:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Ensure ASP.NET Simple Membership is initialized only once per app start
LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock);
}