Return 通用列表由 Entity Framework 加入

Return generic lists by Entity Framework join

我正在使用 Entity Framework 并想加入 2 table,然后 return 将其作为列表。

但是我的方法 returns List<contact>contact 在我的数据库中是一个 table),我不能 return 它。由于新对象,不像 contact,我怎么不能 return 我的结果?

这是我的代码

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();
}

您不能 return 匿名类型列表,因为 GetAllContract 方法需要一个联系人类型列表。如果您想 return 联系人类型以外的其他内容,则必须明确定义它。创建一个新的 class ,它将被设置为方法 return 类型

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; }
}

当然,您可以添加更多您想要的属性。然后像这样更改您的方法 return 类型和您的 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();
}