MVC / LINQ /合并Iqueryable对象[关闭]
Posted
技术标签:
【中文标题】MVC / LINQ /合并Iqueryable对象[关闭]【英文标题】:MVC / LINQ / Consolidate Iqueryable object [closed] 【发布时间】: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 Question 和Writing the Perfect Question。另外,请务必使用tour。 听起来您想要连接数据源并根据这些连接生成输出。这可以使用 Linq 或 Lamdas 来完成,并且有很多关于如何做到这一点的文档。对这个主题进行一些研究,然后返回究竟什么不起作用。 【参考方案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 => newx.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;
~~~
【讨论】:
以上是关于MVC / LINQ /合并Iqueryable对象[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
并且找不到可接受类型为“System.Linq.IQueryable<MvcApplication1.Models.Student>”
OrderBy IQueryable 列表基于 LINQ 中的另一个内部列表 [重复]
LINQ to SQL 中 ConcatUnionIntersectExcept 方法的使用