одновременное отображение двух табличных данных в linq

#c# #entity-framework #linq

#c# #entity-framework #linq

Вопрос:

Я хочу отображать информацию о двух таблицах одновременно.

 List<int> order_track = db.Order_Trackings.Where(e => e.UID == id).Select(q => q.ID).ToList();
            if (order_track == null)
            {
                var rate = db.Ratings.OrderByDescending(e => e.Rate).Take(5);
            }
          List<int> fidList = db.OrderFoods.Where(q => order_track.Contains(q.OID)).Select(q => q.FID).ToList();
            var qs = (from x in fidList
                      group x by x into g
                      let count = g.Count()
                      orderby count descending
                      select new { KEY = g.Key });

            if (order_track.Count == 2)
            {
                var one = qs;
                List<int> idList = new List<int>();
                foreach (var val in one)
                {
                    idList.Add(val.KEY);
                }
                var food = db.Foods.Where(q => idList.Contains(q.ID));

                var rate = db.Ratings.OrderByDescending(e => e.Rate).FirstorDefault();
                return Request.CreateResponse(HttpStatusCode.OK, rate);
  

Я хочу сделать что-то подобное, я надеюсь, вы поймете, чего я пытаюсь достичь, заранее спасибо.

 var food = db.Foods.Where(q => idList.Contains(q.ID)amp;amp;db.Ratings.OrderByDescending(e => e.Rate).FirstorDefault());
return Request.CreateResponse(HttpStatusCode.OK, rate);
  

Ответ №1:

Если вы хотите объединить два результата в одну переменную, то самый простой способ сделать это — создать анонимный объект, например:

 var result = new
{
    food = db.Foods.Where(q => idList.Contains(q.ID)),
    rate = db.Ratings.OrderByDescending(e => e.Rate).FirstorDefault()
};
return Request.CreateResponse(HttpStatusCode.OK, result);
  

Вы также можете создать a class с двумя properties , а затем создать экземпляр этого класса, но если это единственное место, где вы будете использовать этот класс, я бы не стал этого делать.

Комментарии:

1. он возвращается с заголовками продуктов и ставок, но я не хочу этого, я хочу обычный список

2. как использовать result.distinct здесь?

3. Вам нужен, например, рейтинг для каждого блюда? Пожалуйста, проясните это, и в этом случае также: как эти два связаны, например, имеет ли Food a RatingID ?