加载相关实体

时间:2017-04-13 13:22:36

标签: c# sql .net entity-framework linq

我们正在为我们的架构使用EF .NET核心,并希望进行基本查询。因此我们所有人都在使用LINQ和amp;关闭延迟加载的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();

那么可以这样做吗?我们的子对象基本上只能说几列。然后在强类型对象中返回所有内容。

1 个答案:

答案 0 :(得分: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>