我正在嘗試執行以下操作...當user
提交新的article
時,我想在我的Web應用程序中顯示作者(用戶)用戶名。這就是爲什麼我需要「連接」這兩個,我想只有1個DbContext。如何正確地將ApplicationDbContext與您的自定義DbContext合併
我現在做這樣說:
public class ApplicationDbContext : IdentityDbContext
{
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
private DbSet<Article> Articles { get; set; } // This line is all i have added/changed. Everything else was auto-generated when i created a new ASP.net MVC project with individual authentication in visual studio.
public ApplicationDbContext()
: base("DefaultConnection")
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
,但我不知道這是做正確的方式。這應該如何正確完成?
UPDATE(我的評論的說明所DavidG的答案)
起初我是獲取用戶的列表,像這樣的:
class ApplicationUserService
{
public List<ApplicationUser> GetUsers()
{
using (var dbContext = new ApplicationDbContext())
{
return dbContext.ApplicationUsers.ToList();
}
}
}
代替:
class ApplicationUserService
{
public List<IdentityUser> GetUsers()
{
using (var dbContext = new ApplicationDbContext())
{
return dbContext.Users.ToList();
}
}
}
問題是因爲這個錯誤,我無法獲得用戶名或任何其他財產。我在線觀看了一些教程,沒有人提到DbSet是用戶。反正...現在我知道爲什麼我不需要這個屬性:
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
這從VS消息幫了我(意爲應該在同樣的問題,我不得不絆倒其他人):
'ApplicationDbContext.Users' hides inherited member 'IdentityDbContext<IdentityUser, IdentityRole, string, IdentityUserLogin, IdentityUserRole, IdentityUserClaim>.Users'.
什麼是'ApplicationUser'?它是否從'IdentityUser'繼承? – DavidG
@DavidG是的,是的。 –