2017-10-18 100 views
1

我有一個「Finalidade」表,它是「Insumo」表的兒子。用實體框架檢索內部數據庫字段

在下面的代碼:

var db = new ApplicationDbContext(); 
var model = db.Insumos; 

foreach (var register in model) 
{ 
    data.Custo = register.Finalidade.Descricao == "Revenda" 
     ? data.Custo 
     : data.Custo - data.CrdtIpi; 
} 

我需要檢索內部場「Finalidade.Descricao」的值,這樣我可以比較我的字符串。問題是,因爲它是Insumo的兒子,整個事情都是空的,我的程序不能工作。

因爲我沒有如何使用「包含」與「註冊」我無法檢索我需要的值。

如何檢索「register.Finalidade.Descricao」的值?

+0

另一種選擇是使用ViewModels並使用LINQ來構建你所需要的。見[這裏](https://stackoverflow.com/questions/28093915/ef-gather-all-child-records-into-list-with-a-parent-member)。 –

+0

我的解決方案能夠幫助您嗎? –

回答

1

對於名爲register的對象,您不使用.Include()。您可以在初始化model屬性時使用它。

// .ToList is optional 
var model = db.Insumos.Include(x => x.Finalidade).ToList(); 

您必須使用eager loading才能完成您要實現的目標。

讓我知道這是否有幫助!