1
的子類,在我的模型,我有兩個類繼承ApplicationUser如何使用ApplicationUser
public class ApplicationUser : IdentityUser
{
[DataType(DataType.MultilineText)]
public string SelfIntroduction { get; set; }
}
public class Author : ApplicationUser
{
public ICollection<Paper> UploadedPapers { get; set; }
}
public class PCMember : ApplicationUser
{
public int? Quota { get; set; }
public ICollection<Topic> PreferredTopics { get; set; }
}
不過,我不能在控制器使用這兩個類。
[HttpPost]
[Authorize(Roles = "PCMember")]
public ActionResult FinishRegister(string userName, int[] selectedTopics)
{
var user = UserManager.FindByName(userName);
string x = ((PCMember)user).UserName;
// create topics
for (int i = 0; i < selectedTopics.Count(); i++)
{
Topic t = context.Topics.Find(selectedTopics[i]);
System.Diagnostics.Debug.Write(t.TopicName);
}
//System.Diagnostics.Debug.Write(selectedTopics);
return View(context.Topics.ToList());
}
當我投用戶PCMember(其實這是),系統會告訴我
"Additional information: Unable to cast object of type
'System.Data.Entity.DynamicProxies.ApplicationUser_XXX' to type
'PaperReviewSystem.Models.PCMember'."
這意味着我使用了錯誤的UserManager或其他什麼東西?
這裏檢查http://stackoverflow.com/questions/27407251/extending-asp-net-identity-in-asp-net-mvc-5-application – GANI
@barry,問題是我不能生成實例ApplicationUser的子類,而不是如何存儲它們。我爲我的用戶模型使用了TPH。如果我通過用戶名參數,我可以得到ApplicationUser但不是PCMember,這是我需要的。 – Alex