2012-01-10 97 views
0

我不知道您是否可以帮助我发现如何显示除相关表主键之外的相关模型变量(在本例中,pk是一个id并且这不是很有帮助)。显示除相关表主键(ID)以外的相关变量

型号:

[EdmRelationshipNavigationPropertyAttribute("PlantModel", "FK_PlantSoilpH_Plant", "PlantSoilpH")] 
     public EntityCollection<PlantSoilpH> PlantSoilpHs 
     { 
      get 
      { 
       return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<PlantSoilpH>("PlantModel.FK_PlantSoilpH_Plant", "PlantSoilpH"); 
      } 
      set 
      { 
       if ((value != null)) 
       { 
        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<PlantSoilpH>("PlantModel.FK_PlantSoilpH_Plant", "PlantSoilpH", value); 
       } 
      } 
     } 

控制器:

public ViewResult Index() 
{ 
    return View(db.Plants.ToList()); 
} 

查看:

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.PlantName) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.ScientificName) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.PlantSoilpHs) 
     </td> 

我的猜测一直认为我应该能够添加 'item.PlantSoilpHs.Name'但似乎并非如此。任何想法将不胜感激!

斯科特

+0

'Plant.PlantSoilpHs'是一个集合,不是吗?你想展示什么?一个名为“PlantSoilpH”或集合中第一个元素名称的“嵌套”表或? – Slauma 2012-01-10 18:08:20

+0

我在数据库中有3个表格:Plant,PlantSoilpH和SoilpH。 Plant是一个包含PlantID(PK)和PlantName的表格。 SoilpH是一个表,其中包含:SoilpHID(PK)和SoilpHName。 PlantSoilpH是一个包含PlantSoilpHID(PK),PlantID(FK/1:1)和SoilpHID(FK/Many:1)的表格。我对收藏品的了解不够多,不能回答你的问题,但我想要做的是展示Plant's SoilpHName。我得到的是PlantSoilpHID。 Noob在这里。谢谢你的帮助! – skhot 2012-01-10 20:07:26

+0

我只能猜测:'@ Html.DisplayFor(modelItem => item.PlantSoilpHs.Select(p => p.SoilpH.Name))'。 – Slauma 2012-01-10 23:55:21

回答

0

从我可以通过分析你的问题和意见收集,您正在使用的视图返回工厂对象的列表 - 它通过你的描述只包含PlantID和PlantName。你不能以这种方式返回SoilpHName。为了得到与工厂相关的SolpHName,而不是

return View(db.Plants.ToList()); 

,你必须使用

return View(db.PlantSoilpHs.ToList()); 
在控制器

@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.Plant.PlantName) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.SoilpH.Name) 
    </td> 
</tr> 

原谅我,如果代码是不准确,它没有经过测试,只是根据您的问题描述提供。