【问题标题】:Asp.Net Membership - Providers in Entity Framework 4Asp.Net Membership - Entity Framework 4 中的提供者
【发布时间】:2010-09-13 13:25:49
【问题描述】:

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

我想知道如果使用 ASP.NET Membership 与数据库的交互是否会使用 Entity Framework 传递?

感谢您的帮助!

【问题讨论】:

    标签: asp.net asp.net-membership


    【解决方案1】:

    对 Musa 的回答表示赞成,以消除负面影响。没有提到自定义会员提供者,但这并不意味着它不是答案。

    他在正确的位置,框架没有附带 EF4 特定的提供程序,但您可以构建自己的。

    这实际上巩固了问题域,因为您可以干净利落地将用户链接到您的其余实体对象,而不是将成员身份视为一个单独的黑匣子,您必须小心翼翼地绕过。

    做到这一点的方法确实是从 MembershipProvider 继承并实现抽象方法。

    一旦你完成了这些,你就可以对用户等做任何你想做的事情,而不是担心破坏你默认获得的 SQLMembership 表和存储过程——我不喜欢使用它们,因为它们很丑。

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

    【讨论】:

    • 是否有类似的 C# 教程?谢谢!
    • @Chuchelo 有下载 C# 代码选项,但没有视频。使用可用的 C# 观看视频并不难。
    【解决方案2】:

    如果你想要一个自定义的会员提供者,你只需要创建一个继承 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

    【讨论】:

    • 问题中没有提到自定义提供程序实现。我经常看到人们在真正理解问题域之前轻率地建议实施自定义提供程序堆栈。 -1
    • 但是这个问题甚至没有意义,这是一个很好的笼统答案。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      相关资源
      最近更新 更多