我可以将Entity Framework与ASP.NET成员资格一起使用吗?

时间:2009-03-06 20:43:57

标签: asp.net .net entity-framework asp.net-membership

我正在创建(实际上,重新创建)在MS-Access数据库中具有现有用户和其他数据的应用程序。数据将移至SQL Server,其中一部分涉及迁移用户。我想使用EF来做ORM,我很确定我知道SQL Server中的数据模型是什么。我是EF的新手,但不是ASP.NET的新手,我想利用ASP.NET中的Membership功能。我正在考虑几种方法,并希望得到一些建议。到目前为止,我对这个想法只进行了一些研究,也许它已经在其他地方得到了回答。所以,这里有一组相关的问题。

  1. EF可以通过我不知道的某个类或命名空间直接使用ASP.NET Membership吗?

  2. 如果我将用户转移到Membership系统,要将其userid与其他表中的数据对齐,我是否应该在aspnet_ *表和DotNetNuke上创建另一组用户数据表?

  3. 我想避免在我使用用户标记数据时使用内置Membership功能进行用户身份验证并切换到EF上下文的情况。看起来很笨拙,通过进入每一行的成员资格用户来撤销用户信息绑定到GridView中的列,但也许这就是需要的东西?我是否需要将其填充并在EF中复制成员资格类以进行数据检索?

  4. 我在考虑可能会为会员实施某种EF提供商,因为可能提供商可能会参与整个EF数据模型。这是疯狂的谈话吗? (我以前从未写过自己的提供者)

  5. 随意告诉我,我没有任何意义。

2 个答案:

答案 0 :(得分:5)

为什么不反过来呢?您可以为asp.net实现自己的成员资格提供程序,它使用您想要/需要的模型。

如果您需要的功能与内置的asp.net成员资格实现不完全匹配,您可以直接推送自己的提供商。如果您只使用几个功能,则必须实现几个方法(您不必为所有方法填充实现)。如果您需要的功能多于它支持的功能,使用成员资格提供程序可能会妨碍您。

答案 1 :(得分:2)

  1. 我们这样做,但我们没有映射成员资格表。您不应该假定使用SQL成员资格提供程序。
  2. 我们映射用户身份,而不是数据库ID。微妙但重要。同样,请记住还有其他成员资格提供者(例如,域名身份验证)。
  3. 你能澄清一下这个问题吗?您不需要复制EF模型中的所有成员资格信息,但您需要一个已知身份列表。
  4. 不,一点也不疯狂,但很难,也许不必要。