1

2つのエンティティ間の関係を表示しなければならない場合があります。問題は、(結合ステートメントを使用して)1つのクエリですべてのデータを取得する必要があるかどうかです。

たとえば、UserPictureというエンティティがあります。画像は1人のユーザーによって作成されます。写真名のリストを表示したい場合、および特定の写真をアップロードした人。

2つのアプローチ:

1)Entity Frameworkリレーションシップを使用します。ここで、Picturesはエンティティであり、Userプロパティ(それを作成したユーザー)があります。ユーザーもエンティティです。

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

2)PictureとUserを1つの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});
}

後者は、パフォーマンスを向上させるために提案されました。個人的には、データアクセス層の表示ロジック(画像とユーザーの関係が印刷されている)で必要なものを結合しないため、前者の方法で記述します。

私は質問を明確に述べたことを望みます。ありがとう!

4

1 に答える 1

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

モデルは写真を表します。ビューを強く入力すると、それを使用できます。

于 2012-09-13T13:06:24.883 に答える