Я хочу отобразить все элементы из моей родительской таблицы с выбранными элементами из дочерней таблицы и создать список из них, чтобы передать их в мое представление.
Вот мой метод действия
public ActionResult Index()
{
int Month = DateTime.Now.Month;
List<EmployeeAtt> empWithDate = new List<EmployeeAtt>();
var employeelist = _context.TblEmployee.ToList();
foreach (var employee in employeelist)
{
// var employeeAtt = new EmployeeAtt();
var employeeAtt = _context.AttendanceTable
.GroupBy(a => a.DateAndTime.Date)
.Select(g => new
{
Date = g.Key,
Emp_name = employee.EmployeeName,
InTime = g
.Where(e => e.ScanType == "I")
.Min(e => e.DateAndTime.TimeOfDay),
OutTime = g
.Where(e => e.ScanType == "O")
.Max(e => e.DateAndTime.TimeOfDay),
});
}
return View();
}
Вот мой взгляд
@model IEnumerable<Attendance.Models.EmployeeAtt>
@{`enter code here`
ViewBag.Title = "AttendanceTable";
<!--Get number of days of current month-->
var DaysInmonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
<!--Create a CurrentName field-->
var CurrentName = "";
}
<table class="table table-bordered">
<thead>
<tr>
<th>EmpName</th>
<!--Loop all the days of month and print it-->
@for (var numb = 1; numb <= DaysInmonth; numb++)
{
<th>@numb</th>
}
</tr>
</thead>
<tbody>
<!--Loop model-->
@foreach (var emp in Model)
{
//if Name is repeated, skip
if (CurrentName != emp.Emp_name)
{
// Set Name
CurrentName = emp.Emp_name;
<tr>
<!--print employee name one time only at the start of row-->
<td>@emp.Emp_name</td>
<!--loop all days of month-->
@for (var numb = 1; numb <= DaysInmonth; numb++)
{
<td>
@{
<!--print only that date time value which is equal to current date(as it will match column header) and current employee name, else print empty-->
var GetThatDayValue = Model.Where(a => a.Date.Value.Day == numb && a.Emp_name == emp.Emp_name).FirstOrDefault();
var DD = GetThatDayValue != null ? GetThatDayValue.InTime + " " + GetThatDayValue.OutTime : "A";
<text> @DD </text>
}
</td>
}
</tr>
}
}
</tbody>
</table>
Как я могу преобразовать анонимный тип в конкретный тип, чтобы я мог составить списокпросмотра объектов модели (EmployeeAtt) и доступа к нему в моем представлении