C# 外键等于主键时在视图中显示数据

C# 外键等于主键时在视图中显示数据,c#,entity-framework,asp.net-mvc-4,linq-to-entities,C#,Entity Framework,Asp.net Mvc 4,Linq To Entities,我有两张表:一般信息和数量。常规信息有一个主键QuoteID,并且与数量有一对多关系(FK=常规信息QuoteID)。在我的详细信息视图中,我想显示来自General_Info的特定行以及来自Quantity的所有数据,其中来自General_Info的QuoteID等于General_InfoQuoteId。我当前的尝试是将详细信息视图设置为显示常规信息中的指定行数据,并使用包含数量的局部视图。我遇到的问题是,它不显示与General_Info中给定行相对应的数量,而是显示所有已添加的额外数量

我有两张表:一般信息和数量。常规信息有一个主键QuoteID,并且与数量有一对多关系(FK=常规信息QuoteID)。在我的详细信息视图中,我想显示来自General_Info的特定行以及来自Quantity的所有数据,其中来自General_Info的QuoteID等于General_InfoQuoteId。我当前的尝试是将详细信息视图设置为显示常规信息中的指定行数据,并使用包含数量的局部视图。我遇到的问题是,它不显示与General_Info中给定行相对应的数量,而是显示所有已添加的额外数量,而不管它与General_Info中的行相对应

以下是我的模型课程:

public partial class General_Info
{
    public General_Info()
    {
         this.Quantities = new HashSet<Quantity>();
    }

    public int QuoteID {get; set;}
    public System.DateTime Open_Quote {get; set;}
    public string Customer_Name {get; set;}
    ...
    public virtual ICollection<Quantity> Quantities {get; set;}
}

public partial class Quantity
{
    public int QuantityID {get; set;}
    public int AdditionalQty {get; set;}
    public int General_InfoQuotesID {get; set;} //fk

    //navigation property
    public virtual General_Info General_Info {get; set;}
}
然后在我的DQuantilities视图中(我没有包括details视图,因为它已经正常工作了,我不认为这就是问题所在)

@model IEnumerable
额外数量:
很确定这个foreach声明只是针对 IEnumerable中的实际表数据 这就是为什么它会印刷所有指定数量的产品 只针对我的linq语句获取的数据

@foreach (var item in Model) {
  <tr>
    <td>
      @Html.DisplayFor(modelItem => item.AdditionalQty)
    </td>
  </tr>
}
</table>
@foreach(模型中的变量项){
@DisplayFor(modelItem=>item.AdditionalQty)
}

提前感谢任何能提供帮助的人。

好的,我有一个有效的答案

在我的控制器中,我将D4数量更改为:

    [HttpGet]
    [ChildActionOnly]
    public ActionResult DQuantities(int id = 0)
    {
        General_Info general_info = unitOfWork.General_Info_Repository.GetByID(id);

        IEnumerable<Quantity> getQuantities = unitOfWork.Quantity_Repository.Get();

        IEnumerable<Quantity> qtys = getQuantities.Where(q => q.General_InfoQuotesID == general_info.QuoteID);

        return PartialView(qtys);   
    }
[HttpGet]
[仅限儿童]
公共操作结果DQ数量(整数id=0)
{
General\u Info General\u Info=unitOfWork.General\u Info\u Repository.GetByID(id);
IEnumerable getQuantilities=unitOfWork.Quantity_Repository.Get();
IEnumerable qtys=getQuantilities.Where(q=>q.General\u InfoQuotesID==General\u info.QuoteID);
返回部分视图(qtys);
}
在我看来:

@model IEnumerable<SourceMvc.Quantity>

<table>
  <tr>
    <th>
      @Html.DisplayNameFor(model => model.AdditionalQty)
    </th>
  </tr>

  @foreach ( var item in Model)
  {
    <tr>
      <td>
        @Html.DisplayFor(modelItem => item.AdditionalQty)
      </td>
    </tr>
  }

</table>
@model IEnumerable
@Html.DisplayNameFor(model=>model.AdditionalQty)
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.AdditionalQty)
}

为什么不使用
公共虚拟ICollection数量{get;set;}
属性?
@foreach (var item in Model) {
  <tr>
    <td>
      @Html.DisplayFor(modelItem => item.AdditionalQty)
    </td>
  </tr>
}
</table>
    [HttpGet]
    [ChildActionOnly]
    public ActionResult DQuantities(int id = 0)
    {
        General_Info general_info = unitOfWork.General_Info_Repository.GetByID(id);

        IEnumerable<Quantity> getQuantities = unitOfWork.Quantity_Repository.Get();

        IEnumerable<Quantity> qtys = getQuantities.Where(q => q.General_InfoQuotesID == general_info.QuoteID);

        return PartialView(qtys);   
    }
@model IEnumerable<SourceMvc.Quantity>

<table>
  <tr>
    <th>
      @Html.DisplayNameFor(model => model.AdditionalQty)
    </th>
  </tr>

  @foreach ( var item in Model)
  {
    <tr>
      <td>
        @Html.DisplayFor(modelItem => item.AdditionalQty)
      </td>
    </tr>
  }

</table>