如何显示声明为 icollection 的实体中的数据
本文关键字:icollection 实体 数据 声明 何显示 显示 | 更新日期: 2023-09-27 18:36:51
>我有一个视图,我想从另一个实体中选择数据,但这个实体被声明为 Icollection。
EF 生成的模型:
namespace SINCO_MVC.Models
{
using System;
using System.Collections.Generic;
public partial class SINCO_CONCESSAO
{
public SINCO_CONCESSAO()
{
this.SINCO_LEI_AUTORIZATIVA = new HashSet<SINCO_LEI_AUTORIZATIVA>();
}
public virtual ICollection<SINCO_LEI_AUTORIZATIVA> SINCO_LEI_AUTORIZATIVA { get; set; }
}
}
我的索引:
[Authorize(Roles = "ADMINISTRADOR")]
public ActionResult IndexConcessaoLeiAut()
{
return View("IndexConcessaoLeiAut", db.SINCO_CONCESSAO.Include(s => s.SINCO_LEI_AUTORIZATIVA).ToList());
}
sinco_lei_autorizativa模型:
namespace SINCO_MVC.Models
{
[MetadataType(typeof(SincoLeiAutorizativaMetaData))]
public partial class SINCO_LEI_AUTORIZATIVA
{
}
public class SincoLeiAutorizativaMetaData
{
[Display(Name="ID: ")]
public int IDLEIAUTORIZATIVA { get; set; }
}
}
我的观点:
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.DisplayFor(modelItem => item.IDCONCESSAO) %>
</td>
<td>
<%: Html.DisplayFor(modelItem => item.SINCO_LEI_AUTORIZATIVA.? ) %>
</td>
</tr>
<% } %>
</table>
我想选择作为SINCO_LEI_AUTORIZATIVA项目的IDLEIAUTORIZATIVA。当实体未声明为 Icollection 时,我只需在 DisplayFor 中调用 IDLEIAUTORIZATIVA。但这不起作用,IDLEIAUTORIZATIVA 不被识别。
有人可以帮助我吗?
谢谢。
在前面的答案的帮助下,我可以按如下方式解决问题。
视图:
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.DisplayFor(modelItem => item.IDCONCESSAO) %>
</td>
<td>
<% foreach (var subitem in item.SINCO_LEI_AUTORIZATIVA)
{ %>
<%: Html.DisplayFor(sla => subitem.IDLEIAUTORIZATIVA) %>
<% } %>
</td>
<td>
</td>
</tr>
控制器:
var idLei = db.SINCO_LEI_AUTORIZATIVA.Select(t => t.IDLEIAUTORIZATIVA).ToList();
var result = db.SINCO_CONCESSAO.Include(s => s.SINCO_LEI_AUTORIZATIVA).Where(s => s.SINCO_LEI_AUTORIZATIVA.Any(v => idLei.Contains(v.IDLEIAUTORIZATIVA))).ToList();
return View(result.ToList());
感谢您的帮助!!