Я создаю ApplicationDbInitializer класс и вызываю его из startup.cs
ApplicationDbInitializer.Seed(userManager, roleManager, context);
ApplicationDbInitializer:
public static class ApplicationDbInitializer
{
public static void Seed(
UserManager<ApplicationUser> userManager,
RoleManager<IdentityRole> roleManager,
ApplicationDbContext context)
{
var roleName = "admin";
roleManager.CreateAsync(new IdentityRole
{
Name = roleName,
NormalizedName = roleName.ToUpper()
}).Wait();
if (userManager.FindByEmailAsync("b@b.com").Result == null)
{
var user = new ApplicationUser
{
UserName = "b@b.com",
Email = "b@b.com"
};
if (userManager.CreateAsync(user, "@Aa123456").Result.Succeeded)
userManager.AddToRoleAsync(user, roleName).Wait();
}
context.SaveChanges();
context.Books.AddRange(
new List<Book> {
new Book{ Name="B1" },
new Book{ Name="B2" },
});
context.SaveChanges();
var userIdOfB = context.Users.FirstOrDefault(u => u.Email == "b@b.com").Id;
var bookId1 = context.Books.FirstOrDefault(c => c.Name == "B1").Id;
var bookId2 = context.Books.FirstOrDefault(c => c.Name == "B2").Id;
context.UserBooks.AddRange(new List<UserBooks>
{
new UserBooks{ BookId = bookId1 , UserId = userIdOfB },
new UserBooks{ BookId = bookId2 , UserId = userIdOfB }
});
context.SaveChanges();
}
}
Работает, все данные сохраняются в БД и UserBooks таблица создана с отношениями, но когда я хочу получить UserBooks, она пуста:
var res = _context.Users.FirstOrDefault(u => u.Email == "b@b.com").UserBooks;
Кто-нибудь может мне помочь, plzzz Почему res пуст? ??