привет, как вы, ребята? Мне нужна помощь Позвольте мне объяснить вам в первую очередь. У меня есть таблица с группой пациентов в месяц, это означает, что это процесс составления данных за месяц. Я хочу собирать данные о пациентах в месяц в соответствии с типом заболевания. Я имею в виду общее количество пациентов в месяц, в зависимости от типа заболевания, которое я пытался собирать данные по месяцам, но я не могу собрать данные по типу заболевания, здесь мне нужна ваша помощь
моя таблица пайонов вот так
{
public class Pation
{
[Key]
public int Id { get; set; }
public string PationName { get; set; }
public int Age { get; set; }
public Sex Sex { get; set; }
public DateTime DateWared { get; set; } = DateTime.UtcNow.AddHours(3);
public int Type_diseaseId { get; set; }
[ForeignKey("Type_diseaseId")]
public virtual Type_disease Type_diseases { get; set; }
public ApplicationUser User { get; set; }
}
public enum Sex
{
boys,
girls,
}
}
модель типа болезни, которая является внешним ключом патиона, и я хочу сгруппировать ее по типу
{
public class Type_disease
{
[Key]
public int Id { get; set; }
public string Namedisease { get; set; }
public virtual ICollection<Pation> Pations { get; set; }
}
}
я сгруппировал патион по возрасту в сумму значений в модели, которую я назвал
UserRing и вот так
{
public class UserRange
{
public string AgeRange { get; set; }
public int Count { get; set; }
public string Gender { get; internal set; }
public string grilsTotal { get; internal set; }
public string boysTotal { get; internal set; }
public string Type_d { get; internal set; }
}
}
и я добавляю actionResult с именем ShowPation в группу с помощью результата pation, подобного этому
public ActionResult ShowPation()
{
var query1 = from t in db.Pations()
let Agerange =
(
t.Age >= (0) && t.Age < (1) ? "Under year" :
t.Age >= (1) && t.Age < (5) ? "1 _ 4" :
t.Age >= (5) && t.Age < (15) ? "5 _ 14" :
t.Age >= (15) && t.Age < (25) ? "15 _ 24" :
t.Age >= (25) && t.Age < (45) ? "24 _ 44" :
"over 45"
)
let Sex = (t.Sex == 0 ? "boys" : "girls")
group new { t.Age, t.Sex, Agerange } by new { t.DateWared.Year, t.DateWared.Month, Agerange, Sex } into g
select g;
var query2 = from g in query1
select new { mycount = g.Count(), g.Key.Year, g.Key.Month, g.Key.Agerange, g.Key.Sex };
var query3 = from i in query2
group i by new { i.Year, i.Month} into g
select g;
Dictionary<string, List<UserRange>> urn = new Dictionary<string, List<UserRange>>();
foreach (var item in query3)
{
foreach (var item1 in item)
{
if (!urn.ContainsKey(item.Key.Month + "/" + item.Key.Year))
{
urn[item.Key.Month + "/" + item.Key.Year] = new List<UserRange>();
}
urn[item.Key.Month + "/" + item.Key.Year].Add(new UserRange { Count = item1.mycount, AgeRange = item1.Agerange, Gender = item1.Sex });
}
urn[item.Key.Month + "/" + item.Key.Year] = urn[item.Key.Month + "/" + item.Key.Year].OrderByDescending(i => i.AgeRange).ToList();//sort the data according to Agerange
}
return View(urn);
}
с таким видом
@model Dictionary<string, List<The_Hospital_Project.Models.UserRange>>
<table border="1" class="table table-responsive table-bordered table-hover table-striped " style="height: 145px;text-align: center; border: solid 1px;border-radius: 5px;direction: rtl;">
@foreach (string key in Model.Keys)
{
<tr>
<td colspan="17"> <center>@key</center></td>
</tr>
<tr>
@foreach (The_Hospital_Project.Models.UserRange item1 in Model[key])
{
<td style="height: 57px;">@item1.AgeRange</td>
}
</tr>
<tr>
@foreach (The_Hospital_Project.Models.UserRange item1 in Model[key])
{
<td>@item1.Gender</td>
}
</tr>
<tr>
@foreach (The_Hospital_Project.Models.UserRange item1 in Model[key])
{
<td>@item1.Count</td>
}
</tr>
}
</table>
Таблица просто собирает все записи каждый месяц.
Я хочу отсортировать записи по типу заболеваний.
Каждый месяц, пока код работает хорошо для сбора данных по месяцам
Я хочу собирать данные по заболеваниям в течение каждого месяца в зависимости от модели типа заболевания, которая равна
внешний ключ pation должен быть результатом, подобным изображению в каждом месяце
здесь
как я могу это сделать, ребята, я так старался, но я не могу этого сделать, пожалуйста, ребята, помогите мне