Как сохранить объект запроса контекстного объекта в общий список? - PullRequest
0 голосов
/ 05 ноября 2011

В мой последний вопрос , я успешно выгрузил данные в комбинированное окно с решением от Лео, но теперь я хочу получить все данные о конкретном пользователе и сохранить в общем списке. Я пытался с этим кодом, но он не работает. Могу ли я знать, что с моим кодом что-то не так?

  var contexti = new OrganizationContext();
  //contexti.Load(contexti.GetAdminPassQuery(userName), LoadInfo, null);
  EntityQuery query = contexti.GetAdminPassQuery(userName);
  contexti.Load<tblAdmin>(query).Completed += (sender, args) =>
           {
                  List<AdminInfo> list = ((LoadOperation<tblAdmin>) sender).Entities.
                                         ToList();}

это в контексте домена.

    public IQueryable<tblAdmin>  GetAdminPass(string adminId)
    {
        return this.ObjectContext.tblAdmins.Where(e => e.adminID.Equals(adminId));
    }

это хранилище общих списков в папке помощника

    public class AdminInfo
{
    public string AdminId { get; set; }
    public string AFirstName { get; set; }
    public string ALastName { get; set; }
    public string AEmail { get; set; }
    public string APassword { get; set; }
}

Спасибо за ответ

1 Ответ

1 голос
/ 05 ноября 2011

AdminInfo отличается от типа tblAdmin, поэтому вам нужно вручную создать новый список:

contexti.Load<tblAdmin>(query).Completed += (sender, args) =>
{
    List<AdminInfo> list = new List<AdminInfo>();

    //for each entity returned, create a new AdminInfo and add it to the list
    foreach (var item in ((LoadOperation<Car>)sd).Entities)
    {
        list.Add(new AdminInfo(){ AdminId = item.AdminId, AFirtsName = item.FirstName /*other properties*/});
    }

}
...