我有一个观点,我想从另一个实体中选择数据,但是这个实体被声明为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无法识别。
任何人都可以帮助我吗?
感谢。
答案 0 :(得分:0)
借助之前的答案,我可以解决以下问题。
查看:
<% 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());
感谢您的帮助!!