2017-04-13 111 views
0

我们正在为我们的体系结构使用EF .NET核心并希望进行基本查询。因此,我们之后使用的LINQ & EF与延迟加载关闭来选择父项,在这种情况下,棒项目和子对象中的一些字段。然后将它们返回到我们的强类型项目中。加载相关实体

就是这样。

var qry = _context.Set<stock>() 
     .Include(p => p.stockitem) 
     .Where(q => q.customer == accountNo) 
     .Select(r => new stock() { 
      customer = r.customer, 
      r.stockitem.select(s => new {id, s.id, s.name }}) 
     .ToList(); 

那么有可能这样做吗?基本上可以从我们的子对象中得到几个列。然后让所有的东西在强类型对象中返回。

+0

行r.stockitem.select(s => new {id,s.id,s.name}})不是很正确,它不会在初始化程序块中设置属性......括号也不正确... –

回答

0

首先创建将选择的数据将被存储在模型(该模型只是一个例子):

public class MyNewCustomer 
{ 
    public string CustomerAccount { get; set; } 
    public Dictionary<int, string> Items { get; set; } 
} 

在此之后,你可以从你的选择创建一个新的对象:

var data = _context.Stocks 
    .Include(p => p.stockitem) 
    .Where(p => p.customer == accountNo) 
    .Select(p => new MyNewCustomer 
    { 
     CustomerAccount = p.customer, 
     Items = p.stockitem.ToDictionary(s => s.id, s => s.name) 
    }).ToList(); 

PS:我用Dictionary,因为你没有提供实际的模型。你可以选择任何种类的List<TObject>你想要的。

相关问题