使用linq join

时间:2016-08-10 15:15:14

标签: c# asp.net linq

我必须在listview项目上显示数据,因此我有以下代码:

public IQueryable mostrarMesas()
{
    var query = from area in db.res_areas_sucursal
                join mesa in db.res_mesas_sucursal on area.area_gkey equals mesa.area_gkey
                select mesa;

    return query;
}

这会连接两个表数据并返回我需要的数据,但是我需要显示两个表中的数据,我尝试创建这个我觉得有我需要的模型

public class Mesas
{
    [Key]
    public long? mesa_gkey { get; set; }

    public String descripcion_mesa { get; set; }

    public res_areas_sucursal res_areas_sucursal { get; set; }

    public int total_capacidad { get; set; }

    public bool disponible_para_reserva { get; set; }
}

但我不知道如何分配查询以返回Mesas个对象的列表,而不是实体框架中的对象。我正在使用ASP.NET Webforms 4.5

我怎么能这样做?

我应该首先在数据库上建立关系吗?

1 个答案:

答案 0 :(得分:1)

您可以使用匿名类型:

var query = from area in db.res_areas_sucursal
                join mesa in db.res_mesas_sucursal on area.area_gkey equals mesa.area_gkey
                select new Mesas()
                {
                   mesa_gkey = mesa.gkey,
                   // continue the rest
                };

                return query;

或者您可以使用您的模型:

area

在select中,您可以同时使用mesaIQueryable<Mesas>。然后,您可以选择所需的任何属性(列)并进行分配。

请注意,最好返回IQueryable而不是{{1}},除非您有正当理由不这样做。