Asp.net mvc 3 您应该加入实体并将它们合并到POCO中吗?

Asp.net mvc 3 您应该加入实体并将它们合并到POCO中吗?,asp.net-mvc-3,Asp.net Mvc 3,有时我必须显示两个实体之间的关系。问题是,您是否应该在一个查询中检索所有数据(使用join语句) 例如,我有实体用户和图片。图片由一个用户创建。如果我想显示图片名称列表,以及谁上传了特定的图片 两种方法: 1) 使用实体框架关系,其中图片是一个实体,它有一个用户属性(创建它的用户)。用户也是一个实体 foreach(var picture : context.Pictures.all){ picture.name picture.user.name } 2) 将图片和用户组合成一个P

有时我必须显示两个实体之间的关系。问题是,您是否应该在一个查询中检索所有数据(使用join语句)

例如,我有实体用户和图片。图片由一个用户创建。如果我想显示图片名称列表,以及谁上传了特定的图片

两种方法:

1) 使用实体框架关系,其中图片是一个实体,它有一个用户属性(创建它的用户)。用户也是一个实体

foreach(var picture : context.Pictures.all){
  picture.name
  picture.user.name
}

2) 将图片和用户组合成一个POCO对象,并将其返回给控制器。 控制器:

foreach(var pictureUser : dal.GetPictureUsers){
  pictureUser.PictureName
  pictureUser.UserName
}

GetPictureUsers()
{
  PictureUser pictureUserPoc = new PictureUsersql.Include("Picture").include("User").Select(sa=> new PictureUser {
                                                                              PictureName = sa.PictureName, 
                                                                              UserName = sa.UserName});
}
为了提高性能,建议采用后一种方法。就我个人而言,我会以前一种方式编写它,因为在数据访问层中,视图逻辑(打印图片和用户关系)中没有耦合您想要的内容

我希望我已清楚说明问题。 谢谢

模型代表图片;如果强键入视图,则可以使用它

@foreach (var profile in Model)
{
  @Html.DisplayFor(model=>profile.PictureName);
  @Html.DisplayFor(model=>profile.User.Name);
}