我正在寫一個自定義的.NET MembershipProvider(不是內置的),並試圖使用實體框架進行更新。但是,我當然沒有訪問(嘗試)UpdateModel。我如何更新它?提前致謝。如何簡單地在實體框架中更新實體?
回答
要使用默認的供應商做,這是一個有點複雜,但是這將是更容易將創建自己的CustomMembershipProvider所列出的位置:
Implementing A Membership Provider
正如你可以做到這一點你自己的您可以編碼存儲庫/ DAL代碼,然後使用標準EF實踐和慣例,使您可以執行簡單且強大的映射操作,例如UpdateModel。
我想要做的是寫我自己的會員供應商,但我不知道如何從那裏更新我的EF實體。 – Agares 2010-09-21 11:09:32
啊,你需要什麼,爵士。是DAL層還是Repository,我強烈推薦使用Dane Morgridge的這個例子,他提供了T4模板,只需將它放在與EDMX模型相同的文件夾中,然後運行,它將爲您的模型生成數據存儲庫(或者至少可以自定義的骨骼)。 http://geekswithblogs.net/danemorgridge/Default.aspx – JTrott 2010-09-21 13:19:50
@Agares,編寫自己的會員供應商與更新EF實體無關 - 這是一種標準的EF技術,只是看看周圍,你會找到大量的例子。 – RPM1984 2010-09-21 22:18:51
您無法使用ASP.NET成員資格提供程序執行此類事情,即將自定義更新寫入表中。
如果那麼簡單,那麼很少有人會遇到問題/問題。 =)
甚至不用擔心在您的EDMX上添加ASP.NET成員SQL表 - 您不會知道這些關係或表如何真正協同工作。忘記試圖將其表現爲「模型」。
我的建議是不要嘗試綁定到MembershipProvider作爲Model(即不創建強類型視圖),只需直接從您的控制器調用Membership方法即可。
這是我們開始錯過Web窗體的「拖放」的地方,不能放在ChangePassword控件上。 =)
最好的辦法是創建一個普通的視圖(不是強類型的),然後定期按鈕發佈到你的控制器方法。
不要試圖以模型的形式傳遞對象,請在Request.Form集合中獲取字段。
[HttpPost]
public ActionResult ChangePassword()
{
string userName = Request.Form["userName"];
string passWord = Request.Form["passWord"];
MembershipProvider.ChangePassword(userName, password);
return View("ChangePasswordSuccess");
}
上述代碼將(大致)等同於傳遞強類型的用戶對象,更改密碼並調用UpdateModel。
當然,你可以實現自己的會員供應商,但我不相信,實現自定義的供應商只是爲了讓你的代碼「更容易」應該是司機,因爲除非正確編碼的(這是不容易做到) ,您會損害我們認爲理所當然的ASP.NET會員提供商的許多內置安全功能和豐富的帳戶管理選項。
+1。 [不要映射會員表](http://blogs.teamb.com/craigstuntz/2010/03/05/38558/) – 2010-09-21 13:20:59
類似的問題是asked here。
這是一個CodeProject示例應用程序,可以讓你開始使用EF和微軟的MembershipProvider。他們構建了一個從MembershipProvider繼承的類。
http://www.codeproject.com/KB/web-security/EFMembershipProvider.aspx
- 1. 更新實體框架中的實體
- 2. 如何在實體框架中更新?
- 3. 實體框架:更新實體時更新另一個實體
- 4. 如何在實體框架中手動更新實體
- 5. 實體框架更新實體錯誤
- 6. 更新子實體實體框架
- 7. 實體框架更新相關實體
- 8. 實體框架和MySql更新實體
- 9. 實體框架:更新相關實體
- 10. 實體框架更新導航實體
- 11. 實體框架更新實體?
- 12. 如何更新實體框架中的相關實體
- 13. 如何更新實體在實體框架4 .NET
- 14. 實體框架更新?
- 15. 實體框架更新
- 16. 實體框架更新
- 17. 實體框架更新
- 18. 實體框架,WCF&更新
- 19. 實體框架:如何在實體
- 20. 如何更新我的實體框架
- 21. 實體框架如何跟蹤更新?
- 22. 實體框架如何更新子表
- 23. ASP.NET實體框架API更新單列
- 24. 實體框架如何正確更新一個實體代碼?
- 25. 實體框架4 POCO如何更新實體?
- 26. 在實體框架中更新方法
- 27. 如何更新與嵌套實體的實體與AutoMapper和保存更新的實體與實體框架?
- 28. 在ASP .NET中編輯和更新實體框架實體MVC
- 29. 實體框架 - 在「更新模型」後定位新實體
- 30. 當實體更新時,實體框架不更新外鍵
我已更新您的Q以包括您擁有自定義會員供應商的事實。因爲不知道,我的回答基本上是浪費時間。 – RPM1984 2010-09-21 22:16:26