我是一个使用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; }
}
我已经实现了自定义 MembershipProvider 的一些功能,但其中一些现在需要 MembershipUser
作为参数或返回值。
public MembershipUser GetUser(string username, bool userIsOnline)
我的第一反应是从
MembershipUser
继承我的用户类,但这样我就失去了对属性的控制。这种方法在EF Code First中可行吗?另一个想法是为我的用户类创建一个ToMembershipUser()方法。这是一个选项吗?我需要考虑什么?
处理这个问题的最佳方法是什么?
MembershipUser
继承了我的CustomUser
,当使用Entity Framework将CustomUser
保存到数据库时出现了问题。如果有人想使用SQL代码,这里是自定义MembershipUser的官方操作指南如何:实现自定义Membership User。 - Tun[NotMapped]
数据注释来注释CustomUser
类。否则,你会收到关于CustomUser
没有唯一键的错误提示。 - Tun