Во-первых, пожалуйста, подтвердите, успешно ли вы добавили one to many
отношение Rate table
для Identityuser и создали таблицу ставок в базе данных.
Пожалуйста, измените все Identityuser ссылается на (за исключением случаев, когда класс User наследует) в вашем проекте на ваш настроенный класс User , включая соответствующую страницу просмотра и класс запуска.
А затем измените ApplicationDbContext как выполните:
public class ApplicationDbContext : IdentityDbContext<User>
{
public DbSet<Rate> Rate { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
Затем вызовите команду миграции . Подробнее см. В этом видео .
Вот мой класс скорости:
public class Rate
{
[Key]
public int Id { get; set; }
public int rate { get; set; }
public virtual User User { get; set; }
}
После выполнения вышеуказанных операций add relevant Rates data
в базу данных.
Затем запустите проект, войдите в систему с информацией о пользователе, а затем используйте следующий код в соответствующем действии и представлении, чтобы отобразить ставки связанного поля имени:
[Authorize]
public class AccountController : Controller
{
private readonly ApplicationDbContext _context;
public AccountController(ApplicationDbContext context)
{
_context = context;
}
public async Task<IActionResult> Index()
{
var rates = await _context.Rate.Include(host => host.User).Where(x => x.User.UserName == User.Identity.Name).ToListAsync();
return View(rates);
}
}
Razor View:
@model IEnumerable<Rate>
@{
ViewData["Title"] = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Index</h1>
UserName: @User.Identity.Name related Rates data:
<table class="table table-bordered">
<tr>
<th>Id</th>
<th>Rate</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.rate</td>
</tr>
}
</table>
Вот результат теста:
введите описание изображения здесь