Как написать Description
от Recipe
в recipe=
. Я попытался использовать join r in Recipe on d.DishID equals r.DishID
, но он дал неправильный результат. Он стирает один элемент в результате1.Linq group join
Exptected выход:
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
List<Component> Component = new List<Component>();
List<Dish> Dish = new List<Dish>();
List<Recipe> Recipe = new List<Recipe>();
Dish.Add(new Dish { DishID = 9, CategoryID = 6, DishName = "Pork" });
Dish.Add(new Dish { DishID = 10, CategoryID = 6, DishName = "Beef" });
Component.Add(new Component { ComponentID = 1, DishID = 9, AmountID = "1", NameID = "1" });
Recipe.Add(new Recipe { DishID = 9, RecipeID = 0, Description = "Test" });
var result1 = (
from d in Dish
//join r in Recipe on d.DishID equals r.DishID
join c in Component on d.DishID equals c.DishID into items
select new Item { DishID = d.DishID, components = items.ToList() recipe=}
).ToList();
}
}
public class Item
{
public int DishID { get; set; }
public string DishName { get; set; }
public string recipe { get; set; }
public List<Component> components { get; set; }
}
public partial class Component
{
public int ComponentID { get; set; }
public int DishID { get; set; }
public string AmountID { get; set; }
public string NameID { get; set; }
}
public partial class Dish
{
public int DishID { get; set; }
public int CategoryID { get; set; }
public string DishName { get; set; }
}
public partial class Recipe
{
public int RecipeID { get; set; }
public int DishID { get; set; }
public string Description { get; set; }
}
}
'но это дает неправильный результат.' Что это? Пример ввода? ожидаемый результат? – Eser
Исправьте свой код, чтобы он запускался, прямо сейчас он не из того, что вы говорили, дал ответ о том, как сделать левое соединение в linq, но ваш код не компилируется, покажите код, который в настоящее время работает – konkked
. отношение от Dish => Рецепт 1 к 1? Ваше редактирование заставило меня смутить – konkked