如何正确执行LINQ连接

时间:2014-02-14 14:01:03

标签: asp.net-mvc linq entity-framework ef-code-first

我目前正在开发我的第一个数据库驱动的.NET MVC应用程序,在其中我有一个名为Animals的表,其中包含许多字段。一个领域是动物的品种,在这个领域我拿着一个Id到另一个Breed表,其中实际存储了该品种的文本。

使用LINQ,如何连接表然后将数据发送到视图,以便可以以表格格式查看 :enter image description here

在Breed列显示数字列表的图像中,我希望它是与Breed表中相关的实际bred

1 个答案:

答案 0 :(得分:0)

使用导航属性,您可以从模型生成。

然后你的班级应该是这样的。

public class Animals {
  //primitive properties
  public int Id {get;set;}
  //etc.

  //Navigation Properties
  public virtual Breeds Breeds {get;set;}
}

public class Breeds {
  //prmitive properties
  public int Id {get;set;}
  public string Name {get;set;}

  //Navigation properties
  public virtual ICollection<Animals> Animals {get;set;}
}

然后获取具有导航属性的实体:

var animal = Repository.Animals.Include(m => m.Breed)
                       .FirstOrDefault(m => m.Id == <someId>);

您可以使用(假设您的视图模型为Animals

@Html.Displayfor(m => m.Breed.Name)