【发布时间】:2017-10-24 07:45:54
【问题描述】:
我有数据库模型
public class Dish
{
public int Id { get; set; }
public String Name { get; set; }
public Dictionary<Ingridient, int> Ingridients { get; set; }
public List<String> Images { get; set; }
public String Guide { get; set; }
public Guid User { get; set; }
public DishType dishType { get; set; }
public int Rate { get; set; }
public enum DishType
{
Polish,
Asian,
Indian,
Other
};
}
我想从List<Ingridient> 获得所有含有配料的菜肴。类似的东西
输入List<Ingridient>
获取 Dictionary 包含所有这些成分的所有菜肴。虽然 Ingridient 是关键。
我尝试了一些适用于数据库中所有菜肴的慢速解决方案,但我想转向查询数据库以使其更快。
我的解决方案 - 非常慢并且占用大量内存:
List<Dish> allDishes = Dishes.Select(n => n).ToList();
List<Dish> Found = new List<Dish>();
foreach(var d in allDishes)
{
List<Ingridient> fromDish = d.Ingridients.Keys.ToList();
foreach(var ing in ingridients)
{
if (!fromDish.Contains(ing))
break;
}
Found.Add(d);
}
我想将此行为重新创建为 Linq 查询。
【问题讨论】:
-
我已尝试寻找解决方案,但尚未找到任何有用的信息。我试图想出自己的 Linq,但老实说这对我来说太复杂了。
-
我已经编辑了我的问题。如果缺少某些东西或有什么问题,我会感谢您帮助修复它。
标签: c# entity-framework list linq dictionary