Возврат списков generi c по объединению Entity Framework - PullRequest
0 голосов
/ 24 апреля 2020

Я использую Entity Framework и хочу объединить 2 таблицы, а затем вернуть их в виде списка.

Но мой метод возвращает List<contact> (contact - это таблица в моей БД), и я не могу его вернуть. Из-за нового объекта, а не как contact, как я не могу вернуть свой результат?

Это мой код

public List<contact> GetAllContact()
{
     return db.contact.Where(c => c.deleted_at == null)
                      .Join(db.contact_image, contact => contact.id, image => image.contact_id, 
                            (contact, image) => new { 
                                                        contact.id,
                                                        contact.first_name,
                                                        contact.last_name,
                                                        contact.mobile,
                                                        contact.email,
                                                        contact.brithday,
                                                        contact.brithday_fa,
                                                        contact.created_at,
                                                        contact.updated_at,
                                                        contact.deleted_at,
                                                        image.image
                                                    }).ToList();
}

1 Ответ

0 голосов
/ 25 апреля 2020

Невозможно вернуть список анонимных типов, так как метод GetAllContract ожидает список типов контактов. Если вы хотите вернуть что-то, кроме типа контакта, вы должны явно определить это. Создайте новый класс, который будет установлен как тип возврата метода

public class Contact_BO {
    public int ID {get;set;}
    public string First_Name { get; set; }
    public string Last_Name{ get; set; }
    public string Mobile { get; set; }
}

Конечно, вы можете добавить любые другие свойства, которые вы будете sh. Затем измените тип возвращаемого вами метода и запрос linq следующим образом

public List<Contact_BO> GetAllContact()
{
     return db.contact.Where(c => c.deleted_at == null)
                      .Join(db.contact_image, contact => contact.id, image => image.contact_id, 
                            (contact, image) => 
                                new Contact_BO { 
                                        ID = contact.id,
                                        First_Name = contact.first_name,
                                        Last_Name.last_name,
                                        Mobile = contact.mobile,
                                    }).ToList();
}
...