【发布时间】:2021-03-09 17:48:43
【问题描述】:
我正在尝试使用内部联接列出 2 个表中的项目。我认为有一个问题。请帮帮我。
这是我得到的错误
传入字典的模型项的类型为“PersonelGiriş_MVC.Models.ortaktablo”,但此字典需要类型为“System.Collections.Generic.List`1[PersonelGiriş_MVC.Models.ortaktablo]”的模型项。
模型类:
public class personel
{
public int id { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string isim { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string soyisim { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string tcno { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
[DataType(DataType.DateTime, ErrorMessage = "Lütfen doğum tarihinizi doğru bir şekilde giriniz.")]
public int dogumtarihi { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string dogumyeri { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string cinsiyet { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string kangrubu { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
public string adres { get; set; }
[Required(ErrorMessage = "Bu alan boş geçilemez!")]
[DataType(DataType.PhoneNumber, ErrorMessage = "Lütfen telefon numaranızı doğru bir şekilde giriniz.")]
public string telno { get; set; }
public string resimismi { get; set; }
public virtual List<saat> saatler { get; set; }
}
public class saat
{
public int saatid { get; set; }
public string girissaati { get; set; }
public string cikissaati { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd'/'MM'/'yyyy}")]
public DateTime? kayittarihi { get; set; }
//her giriş/çıkış saati yanlızca bir ait olabilir.
public virtual personel personel { get; set; }
}
public class ortaktablo
{
public string p_isim { get; set; }
public string p_soyisim { get; set; }
public string p_girissaati { get; set; }
public string p_cikissaati { get; set; }
public List<ortaktablo> toplamtablo { get; set; }
}
控制器:
var secim = (from saat_veri in db.saatler
join per_veri in db.personeller on saat_veri.personel.id equals per_veri.id
select new ortaktablo { p_isim = per_veri.isim, p_soyisim = per_veri.soyisim, p_girissaati = saat_veri.girissaati, p_cikissaati = saat_veri.cikissaati });
var Model = new ortaktablo { toplamtablo = secim.ToList() };
return View(Model);
查看:
@model List<PersonelGiriş_MVC.Models.ortaktablo>
@if (Model != null)
{
foreach (var item in Model)
{
<tr class="info">
<td>@Html.DisplayFor(i => item.p_isim)</td>
<td>@Html.DisplayFor(i => item.p_soyisim)</td>
<td>@Html.DisplayFor(i => item.p_girissaati)</td>
<td>@Html.DisplayFor(i => item.p_cikissaati)</td>
</tr>
}
}
【问题讨论】:
-
您了解
ortaktablo和List<ortaktablo>之间的区别吗? -
不是问题,但您确定需要加入吗?我觉得导航属性在你的情况下应该足够了。
-
是的,我认为我需要加入,因为有两个表有关系。
标签: c# asp.net-mvc .net-core razor