[英]MembershipUser and Entity Framework Code First
我正在使用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; }
}
根據實體模型的具體情況,自定義傳遞給基礎構造函數的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.