我正在努力獲得在我的EntityFramework/MVC4/DatabaseFirst項目中工作的簡單成員方案。我已經找到了很多用於處理代碼的例子,但首先沒有提及DB。SimpleMembershipInitializer不會初始化
我遇到的是在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服務器......這將是必需的?
我的項目不喜歡使用EF連接字符串。相反,我不得不添加第二個連接字符串,它是SQL連接字符串(或sql compact)。我沒有玩過它,所以別人可能會有更好的想法 – Eonasdan
它值得一試...但絕對感覺像一個短期的解決方法... – reidLinden
是的,這工作繞過錯誤,但我不不認爲它可能是一個好主意,連接到我的EF數據庫沒有EF的好處....? – reidLinden