2017-04-05 89 views
0

我在名爲Computer和Department的SQL數據庫中有兩個表,它們通過名爲DepartamentComputer(PK是ComputerId)的表有一對多的關係。如何在Entity Framework中列出連接的實體屬性而不是完整的實體?

我想列出對一個DataGridView各自的部門名稱的所有計算機,但是當涉及到部門的DataGridView的,它實際上顯示了實體,而不是系這樣的名稱:DataGridView row

這些需要方法來從一個通用存儲庫中獲得的所有計算機:

public Task<List<TEntity>> GetAllAsync() 
    { 
     return Context.Set<TEntity>().ToListAsync(); 
    } 

    public async Task<IEnumerable<Computadora>> ListarAsync() 
    { 
     return await _unitOfWork.Computadora.GetAllAsync(); 
    } 

而這些填充的DataGridView方法

private async void ListarComputadoras() 
    { 
     var lista = await ListarAsync(); 
     Popular(lista); 
    } 

    public void Popular(IEnumerable<Computadora> computadoras) 
    { 
     var bs = new BindingSource() {DataSource = computadoras.ToList()}; 
     dgvDatos.DataSource = bs; 
    } 

如何選擇表格部門的屬性名稱並將其顯示在DataGridView上而不是顯示實體的名稱?

謝謝!

編輯:我忘了提。我想避免使用匿名類型,因爲我有更多的邏輯取決於計算機列表和邏輯會破壞的匿名類型。

回答

0

試試這個

public void Popular(IEnumerable<Computadora> computadoras) 
{ 
    var data = (from c in computadoras 
       select new { 
          CodigoInterno = c.CodigoInterno, 
          Departamento = c.Departamento.Name, // If the department entity has a name property. 
         // assign the properties to be shown in grid like this 
          }).ToList(); 

    var bs = new BindingSource() {DataSource = data}; 
    dgvDatos.DataSource = bs; 
} 

如果你不喜歡使用匿名類型,創建一個類所需要的屬性和按如下方式使用它。

public void Popular(IEnumerable<Computadora> computadoras) 
{ 
      var data = (from c in computadoras 
        select new Computer{ 
             CodigoInterno = c.CodigoInterno, 
             Departamento = c.Departamento.Name, //If the department entity has a name property. 
            // assign the properties to be shown in grid like this 
           }).ToList(); 

      var bs = new BindingSource() {DataSource = data}; 
      dgvDatos.DataSource = bs; 
} 

public class Computer 
{ 
    public string CodigoInterno {get;set;} 
    public string Departamento {get;set;} 
    //add properties here 
} 
+0

我試了一下,它的工作原理,但它可以做到這一點,避免使用匿名類型?因爲我有更多的邏輯依賴於計算機列表以及邏輯會破壞的匿名類型。 –

+0

如果您不喜歡使用匿名類型,請爲其創建一個類並使用它。查看更新後的答案 – AnjuRaj

相關問題