У меня есть классы User
и Role
, и я хочу получить доступ к имени пользователя с Role
.
Мои классы:
public class ShiftCalendar
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int ShiftId { get; set; }
public virtual Shift Shift { get; set; }
public DateTime Date { get; set; }
public DateTime ShiftEndTime { get; set; }
public User ShiftManager { get; set; }
public string ShiftManagerId { get; set; }
}
public class Shift
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[MaxLength(50)]
public string Description { get; set; }
public TimeSpan ShiftBeginTime { get; set; }
public TimeSpan ShiftEndTime { get; set; }
public ICollection<ShiftCalendar> ShiftCalendars { get; set; }
}
public class User: IdentityUser
{
public String FirstName { get; set; }
public string Surname { get; set; }
public ICollection<ShiftCalendar> ShiftCalendars { get; set; }
}
Я хочу получить доступ к имени пользователя в представлении индекса ShiftCalendar
, но эти данные пустые, когда я пытался их показать:
Код представления:
@model IEnumerable<Project.Dal.Models.ShiftCalendar>
@{
Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";
}
<table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Shift.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.ShiftManager.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Date)
</td>
<td>
@Html.DisplayFor(modelItem => item.ShiftEndTime)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id })
</td>
</tr>
}
</table>
Появляются другие значения (Shift.Description, Date и EndDate).
Контроллер индекса:
public async Task<ActionResult> Index()
{
var shiftCalendars = _unitOfWork.ShiftCalendarsRepository.Get();
return View(await shiftCalendars.ToListAsync());
}
Что я делаю не так?
Спасибо!