2016-08-10 19 views
0

我必須表現出對listview項目數據,所以我後面的下面的代碼:正確填寫LINQ的一個IQueryable的模型加入

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

您可以使用匿名類型:

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 { area, mesa } ; 
      return query; 

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

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; 

裏面的選擇,你可以同時使用areamesa。然後你可以選擇你需要的任何屬性(列)並分配它們。

請注意,除非您有正當理由不這樣做,否則最好將IQueryable<Mesas>而不是僅返回IQueryable

+0

一個簡單的評論,如「使用LINQ選擇運算符」就足夠了。回答缺乏基礎研究的基本問題,真的嗎? –

+0

@IvanStoev對不起,我不知道如何搜索這個,我查找使用linq連接表,我想出了連接條款和我已經實施的其他事情,失蹤了這一步 –

+0

@Forcefield個人建議 - 總是從MSDN開始:[join clause(C#Reference)](https://msdn.microsoft.com/en-us/library/bb311040.aspx),[Query Keywords(C#Reference)](https:// msdn。 microsoft.com/en-us/library/bb310804.aspx)等 –