【问题标题】:Return generic lists by Entity Framework join通过实体框架连接返回通用列表
【发布时间】:2020-04-24 15:02:42
【问题描述】:

我正在使用实体框架并想加入 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();
}

【问题讨论】:

  • 这能回答你的问题吗? Return Anonymous Type from a function
  • @VadimMartynov 还不错。但我想在 List 中设置,这个问题说我们不能为函数设置匿名类型
  • 是的,那是因为你真的做不到,需要为你的场景制作一个新的类型。
  • 是的。我用我的自定义道具创建了一个类并在我的函数中使用它

标签: c# asp.net entity-framework generic-list


【解决方案1】:

您不能返回匿名类型列表,因为 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; }
}

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

【讨论】:

    猜你喜欢
    • 2020-02-14
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多