Asp.Net成员 - 实体框架4中的提供商

时间:2010-09-13 13:25:49

标签: asp.net asp.net-membership

我有一个使用ASP.NET Membership,Entity Framework 4和MS SQL 2008 for DB的网站。

我想知道使用ASP.NET成员资格是否会使用Entity Framework传递与数据库的交互?

感谢您的帮助!

3 个答案:

答案 0 :(得分:10)

赞成Musa的回答消除否定。没有提到自定义成员资格提供者,但这并不意味着它不是答案。

他是正确的,没有框架附带的EF4特定提供商,但你可以建立自己的。

这实际上整合了问题域,因为您可以清理地将用户链接到您的实体对象的其余部分,而不是将成员资格视为一个单独的黑匣子,您必须小心翼翼。

实现这一目标的方法实际上是继承MembershipProvider并实现抽象方法。

一旦你完成了这个,你就可以为用户做任何你想做的事情,而不是生活在打破你默认获得的SQLMembership表和存储过程的恐惧 - 我不喜欢使用它们,因为它们很难看。 / p>

我刚刚使用我自己的EF4模型,我自己的用户实现等。我使用了此视频附带的示例代码 - http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider。顺便说一句,如果您按原样使用该示例代码,请注意存储过程名称中的几个拼写错误!

答案 1 :(得分:8)

如果您需要自定义成员资格提供程序,则只需创建一个继承MembershipProvider抽象类的类。然后,您需要实现抽象方法,如ValidateUser,UpdateUser,GetUser等。您可以在实现自定义成员资格提供程序方法时使用EntityFramework。

以下文档使用odbc实现自定义成员资格提供程序。您可以使用EntityModel而不是odbc。

http://msdn.microsoft.com/en-us/library/44w5aswa.aspx

http://msdn.microsoft.com/en-us/library/6tc47t75.aspx

答案 2 :(得分:6)

不,SqlMembership以及Sql堆栈中的其他提供程序使用直接调用的存储过程。

如果您愿意,可以在aspnet_db数据库的基础上构建一个EF概念模型,如果您想检查它或与之交互。

但是,我强烈建议您将其视为只读,除非您确切知道要更新或删除的内容。