gpt4 book ai didi

c# - 我的用户模型应该继承 MembershipUser

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:38 25 4
gpt4 key购买 nike

我正在考虑在 ASP.Net MVC3 中创建自定义成员资格提供程序,并且正在努力了解它们如何组合在一起......

我真的在寻找一些关于如何做到这一点的最佳实践方法。

我有一个用户模型(代表我数据库中的一个用户表)。为了将其与 MembershipProvider 功能一起使用,该模型是否应该继承 MembershipUser? MembershipUser 中有许多我不关心的字段 - 这些是否必须位于底层 SQL 表中才能使这种方法起作用(显然这似乎是多余的,因为我永远不会使用这些列?)

例如 - 我应该让我的模型像这样继承 MembershipUser 吗?

/// <summary>
/// Class representing a registered user based on the Users database table.
/// </summary>
public class User : MembershipUser
{
public int Id { get; set; }
//here I can access some other properties I will use which are already in MembershipUser...

//Addtional properties I need specific to my app.
public bool NotifyOfNewBlog { get; set; }
public bool NotifyOfNewWallPosts { get; set; }
//...plus many more.
}

当进一步使用 Membership.GetUser() 时,我是否每次都将该对象转换回我原来的 User 对象以便能够访问额外的属性?

这是我应该采取的方法吗?或者我是一个单独的 User 模型,然后是一个链接回数据库模型的 CustomMembershipUser 模型?

如果没有将所有 MembershipUser 列作为表中的对象,EF 是否能够保存/更新/插入用户模型?这甚至接近正确的方法吗?如您所见,我有点摸不着头脑。

非常感谢任何建议/想法/想法。

最佳答案

就继承 MembershipUser 对象而言,您可以那样做,并且在您的 MembershipProvider 实现中,只需转换为您的派生类型,但我个人不会这样做,仅仅是因为您然后受制于此类型的 future 更改会破坏您的派生类型(尽管我猜大多数框架都可以这样说)。相反,我会将这些额外的值放入一个配置文件中,然后推出您自己的 ProfileProvider(不要使用 Sql,根据我的经验,它是垃圾)。

“MembershipUser 中有许多我不关心的字段 - 这些是否必须位于基础 SQL 表中才能使这种方法起作用(显然这似乎是多余的,因为我永远不会使用这些列?) "

如果您自己滚动,则可以不将其保存在 Db 中。毕竟,您正在实现 MembershipProvider 方法(GetUser 等),因此您如何处理传递给您的 MembershipUser 对象取决于您。您可以忽略这些,而不验证或存储它们。

关于c# - 我的用户模型应该继承 MembershipUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9430554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com