2017-10-18 99 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才能完成您要实现的目标。

让我知道这是否有帮助!