gpt4 book ai didi

c# - MembershipUser 和 Entity Framework 代码优先

转载 作者:太空狗 更新时间:2023-10-29 22:54:26 26 4
gpt4 key购买 nike

我正在尝试使用 EF Code First,现在在实现自定义 MembershipProvider 时遇到了麻烦。

对于 EF Code First,我创建了自己的用户类,如下所示:

public class User
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string Password { get; set; }
[Required]
public string Email { get; set; }
[Required]
public bool IsApproved { get; set; }
public DateTime? LastLoginDate { get; set; }
public DateTime? LastActivityDate { get; set; }
[Required]
public DateTime CreationDate { get; set; }
[Required]
public string ApplicationName { get; set; }
}

我还已经为 EF 实现了我的自定义 MembershipProvider 的一些功能,但其中一些现在需要 MembershipUser 作为参数或返回值。

    public MembershipUser GetUser(string username, bool userIsOnline)

我的第一个想法是从 MembershipUser 继承我的 User 类,但后来我失去了对属性的控制。这甚至可以与 EF Code First 一起使用吗?

另一个想法是为我的用户类创建一个 ToMembershipUser() 方法。那会是一个选择吗?我需要考虑什么?

处理此问题的最佳方法是什么?

最佳答案

您可以使用适配器模式来解决这个问题。

public class CustomUser : MembershipUser
{
public CustomUser(string providername,
User userAccount) :
base(providername,
userAccount.UserName,
userAccount.Id,
userAccount.Email,
passwordQuestion,
string.Empty,
true,
false,
userAccount.CreationDate,
userAccount.LastLoginDate,
userAccount.LastActivityDate,
new DateTime(),
new DateTime())
{
UserAccount = userAccount;
}

public User UserAccount { get; private set; }
}

根据您的实体模型具有的内容自定义传递给基本构造函数的参数。

关于c# - MembershipUser 和 Entity Framework 代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220472/

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