【问题标题】:MVC / LINQ / Consolidate Iqueryable object [closed]MVC / LINQ /合并Iqueryable对象[关闭]
【发布时间】:2021-10-26 18:43:15
【问题描述】:

我是初学者。

我有基于 ASP.NET 和实体框架的 ASP .Net 应用程序。

我构建了一个控制器,它从数据库中生成三个 iqueryable 对象。

可查询 1

Company Model Stock A
Dell Lat 5420 25
Dell Lat 5490 15
Dell Lat 7589 5
HP Eli 840 G6 15

可查询 2

Company Model Stock B
Dell Lat 5420 2

可查询 3

Company Model Stock C
Dell Lat 7589 5
HP Eli 840 G6 50

我想将这 3 个对象合并为一个。目标是传递这个对象在结果下方查看和打印

Company Model Stock A Stock B Stock C
Dell Lat 5420 25 2 0
Dell Lat 5490 15 0 0
Dell Lat 7589 5 0 5
HP Eli 840 G6 15 0 50

非常感谢您的帮助

问候 弗朗索瓦-泽维尔·德尔维洛伊 巴黎

【问题讨论】:

  • 除了问题之外,您还应该包含到目前为止的代码努力回答您的问题/问题,因为Stack Overflow 不是代码编写服务)。在doing more research 之后,如果您遇到问题,您可以发布您尝试过的内容,并清楚地解释什么不起作用并提供minimal reproducible example 。我建议阅读How do I ask a Good QuestionWriting the Perfect Question。另外,请务必使用tour
  • 听起来您想要连接数据源并根据这些连接生成输出。这可以使用 Linq 或 Lamdas 来完成,并且有很多关于如何做到这一点的文档。对这个主题进行一些研究,然后返回究竟什么不起作用。

标签: sql asp.net-mvc linq model-view-controller iqueryable


【解决方案1】:

我不确定我是否理解您的数据结构,但希望下面的代码对您有所帮助。

void Main()
{
    var data = new List<StockRecord>();
    data.Add(new StockRecord() { Company = "Dell", Model = "Lat 5420", Stock = "Stock A", Count = 25 });
    data.Add(new StockRecord() { Company = "Dell", Model = "Lat 5490", Stock = "Stock A", Count = 15 });
    data.Add(new StockRecord() { Company = "Dell", Model = "Lat 7589", Stock = "Stock A", Count = 5 });
    data.Add(new StockRecord() { Company = "HP", Model = "Eli 840 G6", Stock = "Stock A", Count = 15 });
    data.Add(new StockRecord() { Company = "Dell", Model = "Lat 5420", Stock = "Stock B", Count = 2 });
    data.Add(new StockRecord() { Company = "Dell", Model = "Lat 7589", Stock = "Stock C", Count = 5 });
    data.Add(new StockRecord() { Company = "HP", Model = "Eli 840 G6", Stock = "Stock C", Count = 50 });
    var q = data
        .GroupBy(x => new{x.Company,x.Model})
        .Select(z => new {
            z.Key.Company,
            z.Key.Model,
            StockA = z.Where(y => y.Stock == "Stock A").Sum(y => y.Count),
            StockB = z.Where(y => y.Stock == "Stock B").Sum(y => y.Count),
            StockC = z.Where(y => y.Stock == "Stock C").Sum(y => y.Count),
        } );
    }
}
class StockRecord
{
    public string Company {get;set;}
    public string Model {get;set;}
    public string Stock { get; set; }
    public int Count  {get;set;}
}~~~

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-05
    • 2013-10-20
    • 2013-11-26
    • 2018-05-03
    • 2018-08-17
    • 2019-03-09
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多