C# ASP MVC包含到视图外键类中,这不是必需的
我是MVC ASP的新手,所以为了了解更多信息,我正在自己制作应用程序。当然,它与EF和数据库一起工作。然而,奇怪的是,当我试图列出表中具有可选(null)外键(零对多关系)的所有行时,会发生这种情况。有一个类“Attribute”(基于表),它的列是表“unit”的外键,但数据库中的该列是可选的(null)。类的定义如下(简化版本): 另一个外键数据类型是必需的,虽然这是唯一列出此表中的行的FK索引视图,但它正确地显示了数据库中的所有行。这是索引控制器:C# ASP MVC包含到视图外键类中,这不是必需的,c#,asp.net,asp.net-mvc,entity-framework,foreign-keys,C#,Asp.net,Asp.net Mvc,Entity Framework,Foreign Keys,我是MVC ASP的新手,所以为了了解更多信息,我正在自己制作应用程序。当然,它与EF和数据库一起工作。然而,奇怪的是,当我试图列出表中具有可选(null)外键(零对多关系)的所有行时,会发生这种情况。有一个类“Attribute”(基于表),它的列是表“unit”的外键,但数据库中的该列是可选的(null)。类的定义如下(简化版本): 另一个外键数据类型是必需的,虽然这是唯一列出此表中的行的FK索引视图,但它正确地显示了数据库中的所有行。这是索引控制器: public ActionRes
public ActionResult Index()
{
PIMContext context = new PIMContext();
IQueryable<PIMObjects.Attribute> attributes = context.attributes.Include(a => a.DataType);
return View(attributes.ToList());
}
它只显示具有此字段值的行。其他行未显示。
目前,在数据库中,表中有两个属性行,一个是uom,另一个是uom列中的null。它仅显示具有该值的行
我错过了什么?
顺便说一句,这是应该在index.cshtml中显示此字段的部分
<td>
@if (item.Uom != null)
{
@Html.DisplayFor(modelItem => item.Uom.unitname)
}
</td>
@如果(item.Uom!=null)
{
@DisplayFor(modelItem=>item.Uom.unitname)
}
我现在无法自己尝试,但我想说的是,您需要将uomid的类型从int更改为可为null的int(“int?”) 我现在无法亲自尝试,但我想说,您需要将uomid的类型从int更改为可为null的int(“int?”)
attributes = attributes.Include(a => a.Uom);
<td>
@if (item.Uom != null)
{
@Html.DisplayFor(modelItem => item.Uom.unitname)
}
</td>