0

次の2つのことを避けながら、別のオブジェクト内にオブジェクトを移入しようとしています:

  1. テーブル内のすべてのアイテムを取得する
  2. アイテムごとにデータベースを個別に呼び出す

これが私のコードです

クラス

public class Profile: BaseEntity
{
    public Picture Picture { get; set; }
    public string Name { get; set; }
}

public partial class Picture : BaseEntity
{
   public string Name {get; set;}
}

サービス

public class ProfileService : IProfileService
{
    private readonly IRepository<Profile> _profileRepo;
    private readonly IRepository<Picture> _pictureRepo;


     public ProfileService(IRepository<Profile> profileRepo, IRepository<Picture> pictureRepo)
     {
         _profileRepo = profileRepo;
         _pictureRepo = pictureRepo;
     }

     public IEnumerable<Profile> GetProfiles()
     {
          IEnumerable<Profile> profiles = _profileRepo.Table.ToList();
          // I am guessing I would retrieve pictures here based off of picture 
          // ids that are in the profiles   
          // than I would populate the profiles with the pictures
     }
}

また、データベースの PictureId は Profile テーブルの外部キーです。

4

1 に答える 1

0

オブジェクト間に関係がある場合は、リポジトリにメソッドを作成するだけで実行できるはずです。

public IEnumerable<Profile> GetAllProfilesWithPictures()
{
    return your_context.Profiles.Include(x => x.Picture);
}

これにより、すべてのプロファイルとその写真が返されます。

あなたが何を言っているのかよくわかりませんGetting all items in table..取得するものを制限したい場合は、上記のステートメントにwhere句などを入れることができます。

于 2013-07-15T07:50:58.707 に答える