我正在努力在我的 EntityFramework / MVC4 / DatabaseFirst 项目中获得一个简单的成员资格方案。我发现了很多首先使用代码的示例,但没有先使用 DB。
我遇到的问题是 InitializeDatabaseConnection 抛出错误(“无法找到请求的 .Net Framework 数据提供程序。它可能未安装。”)代码如下所示:
WebSecurity.InitializeDatabaseConnection("DALEntities", "tblContacts1", "ContactID", "EMail", autoCreateTables: true);
我不确定什么 DataProvider 失败了。如果我尝试跟踪“进入” InitializeDatabaseConnection 调用,它会立即引发错误。
我错过了什么?
信息:
DALEntities 是其余 EF 使用的 connectionString 的名称。下面的代码工作得很好......
public ActionResult Test() {
using (var db = new DALEntities()) {
var query = from i in db.TBLINVENTORies
orderby i.ITEMNAME
select i;
var cnt = query.Count();
string str = "Total Inventory: " + cnt;
return Content(str);
}
}
我来自 web.config 的连接字符串部分:
<connectionStrings>
<add name="DALEntities" connectionString="metadata=res://*/DAL.DAL.csdl|res://*/DAL.DAL.ssdl|res://*/DAL.DAL.msl;provider=System.Data.SqlClient;provider connection string="data source=SOMECOMPUTER;initial catalog=SOMEDB;persist security info=True;user id=SOMEID;password=SOMEPASS;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
这篇文章似乎在问同样的问题(但在模型优先的背景下),但还没有解决方案:Using SimpleMembership with EF model-first
另外,我看到WebSecurity.InitializeDatabaseConnection()
帮助文本有一个重载:Initializes the membership system ((blah blah <snip> ProviderName: the name of the ADO.NET data provider. If you want to use Microsoft SQL Server, the WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String, String, String, String, Boolean) overload is recommended
. 我确实希望连接到 MSSQL 服务器……这需要吗?