从数据库中获取选择项的列表并填充对象

时间:2013-07-11 22:14:59

标签: entity-framework

我正在尝试在另一个对象中填充对象,同时避免两件事:

  1. 获取表格中的所有项目
  2. 为每个项目单独调用数据库
  3. 这是我的代码

    课程

    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表中的外键。

1 个答案:

答案 0 :(得分:0)

如果对象之间存在关系,那么您应该只需在存储库中创建一个方法即可:

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

这将返回所有配置文件及其图片。

当你说Getting all items in table时,你的意思不太确定。如果你想限制你得到的东西,你可以在上面的陈述中加上where子句或其他内容。