2016-01-06 112 views
2

我需要選擇數據以在實體框架中填充MVC Asp.net中的DataGrid。當我選擇所有值我需要從三個表連接的值:e,類別和產品。連接總是1到0或1.我選擇了這個代碼的所有walue,但是當沒有關聯category.name時,我自然有一個例外。做這件事的最好方法是什麼?如果在New構造函數中聲明,還需要用到其他嗎?有條件地Linq新語句選擇

var products = from e in dbResult 
          select new 
          { 
           e.Id, 
           e.Title, 
           e.Price, 
           e.Quantity, 
           e.category.nome, 
           e.Product.Sottotitolo, 
           e.Procuct.Provenienza 
          }; 

感謝所有

+0

你得到了什麼異常? –

回答

2

此前C#6一個方法是:

var products = from e in dbResult 
          select new 
          { 
           e.Id, 
           e.Title, 
           e.Price, 
           e.Quantity, 
           Noma = e.category == null ? "" : e.category.nome, 
           Sottotitolo = e.Product == null ? "" : e.Product.Sottotitolo, 
           Provenienza = e.Procuct == null ? "" : e.Procuct.Provenienza 
          }; 

用C#6你可以使用?. null-conditional member access操作:

var products = from e in dbResult 
          select new 
          { 
           e.Id, 
           e.Title, 
           e.Price, 
           e.Quantity, 
           Noma = e.category?.nome, 
           Sottotitolo = e.Product?.Sottotitolo, 
           Provenienza = e.Procuct?.Provenienza 
          }; 

注意,後一種方法中的字段值將是null而不是空字符串。