【发布时间】:2020-05-07 13:23:53
【问题描述】:
有两个表:
public class Fruits
{
public Guid FruitId { get; set; }
public string FruitName { get; set; }
public string FruitType { get; set; }
public string FruitColor {get; set; }
}
public class FruitSales
{
public Guid FruitSaleId { get; set; }
//Foreign key
public Guid FruitId { get; set; }
public int Amount {get; set; }
}
所以我有一个类似于下面的模型:
public class FruitsModel
{
public Guid FruitSaleId { get; set; }
public Guid FruitId { get; set; }
public int FruitCount { get; set; }
public string FruitName { get; set; }
public string FruitType { get; set; }
}
下面的代码:
var fruitSale = context.FruitSales
.Include(i => i.Fruits);
//Here I get the FruitSaleId, FruitId and FruitCount
var fruitCount = fruitSale.GroupBy(g => g.FruitId).Select(s => new FruitsModel
{
FruitSaleId = fruitSale.First().FruitSaleId ,
FruitId = s.Key,
FruitCount = s.Count().ToString()
});
现在为了获取 FruitName 和 FruitType 因为它们属于 Fruit 表,而我无法在前面的代码行中获取它们,所以我这样做了:
var tempFruit = fruitCount .ToList();
foreach (var temp in tempFruit )
{
var res = fruitSale.Where(w => w.FruitSaleId == temp.FruitSaleId ).Select(s => new{FruitName = s.Fruit.FruitName ,FruitType = s.Fruit.FruitType }).FirstOrDefault();
var fruitDetails = fruitCount .Where(w => w.FruitId == temp.FruitId ).FirstOrDefault();
fruitDetails.FruitName= res.FruitName;
fruitDetails.FruitType= res.FruitType;
}
只有fruit count的最后一个元素填充了FruitName和FruitType,其余的都为null。我应该改变什么?
【问题讨论】:
-
fruitSale 列表中对象的结构是什么?
-
@CarloBos 更新了问题。
-
@TheFallenOne 您能否取消删除您最新的 javascript 问题:"To get all array elements which is inside an array of JSON object"
标签: c# linq asp.net-core