如何显示声明为 icollection 的实体的数据
How to display data from a entity declared as icollection
我想 select 来自另一个实体的数据,但这个实体被声明为 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>
我想要 select IDLEIAUTORIZATIVA,它是 SINCO_LEI_AUTORIZATIVA 的一项。当实体没有声明为 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());
感谢帮助!!
我想 select 来自另一个实体的数据,但这个实体被声明为 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>
我想要 select IDLEIAUTORIZATIVA,它是 SINCO_LEI_AUTORIZATIVA 的一项。当实体没有声明为 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());
感谢帮助!!