2017-06-09 7 views
3

3つのテーブルの中から選択するのに問題があります。私は1つの製品が複数のイメージを持つことができるので、3つのテーブルを使用しています。LINQ 3テーブルから選択皿/イメージ/ ImageDish

Print DB

それから私は私のLINQを持っています。そのLINQで

public List<DishModel> GetDish(int dish) 
    { 
     var query = (from m in db.Dish 
      join i in db.ImageDish on m.idDish equals i.idDish 
      join t in db.TypeDish on m.idTypeDish equals t.idTypeDish 
      where m.idTypeDish == dish 
      select new DishModel() 
      {   
       Name = m.name, 
       CalorificValue = m.calorificValue, 
       Price = m.price, 
       ShortName = m.shortName, 
       Time = m.manufactureTime, 
       Description = m.description, 
       UrlImageList = new List<string>() 
       { 
        i.Image.urlImage 
       } 

      }).ToList(); 
     return query; 
    } 

私は彼があるため、画像のリストで同じ製品を複数回選択され

[{"Time":"asdasd","CalorificValue":"123","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["sugestao.jpeg"],"Name":"asdasd","ShortName":"asdasd","Description":"asdas","Price":"12"},{"Time":"123","CalorificValue":"12","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["sugestao.jpeg"],"Name":"asdasdasd","ShortName":"asdasd","Description":"sdasd","Price":"12"},{"Time":"123","CalorificValue":"12","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["bebida.jpeg"],"Name":"asdasdasd","ShortName":"asdasd","Description":"sdasd","Price":"12"},{"Time":"123","CalorificValue":"123","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["sugestao.jpeg"],"Name":"asdasd","ShortName":"qweqw","Description":"asdasd","Price":"12"},{"Time":"12","CalorificValue":"12","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["pexels-photo-59016.jpeg"],"Name":"azores","ShortName":"asdasd","Description":"A região do Douro localiza-se no Nordeste de Portugal, rodeada pelas serras do Marão e Montemuro. A área vitícola ocupa cerca de 40000 hectares, apesar da região se prolongar por cerca de 250000 hectares. O rio Douro e os seus afluentes, como por exemplo o Tua e o Corgo, correm em vales profundos e a maior parte das plantações são encaixadas nas bacias hidrográficas dos rios.","Price":"12"},{"Time":"12","CalorificValue":"2312","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["sugestao.jpeg"],"Name":"asdasd","ShortName":"asdas","Description":"asdasda","Price":"12"},{"Time":"12","CalorificValue":"2312","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["bebida.jpeg"],"Name":"asdasd","ShortName":"asdas","Description":"asdasda","Price":"12"},{"Time":"12","CalorificValue":"2312","BeveragesList":null,"DishEnum":0,"Id":null,"UrlImageList":["Atum-Peixe-Desenho.jpg"],"Name":"asdasd","ShortName":"asdas","Description":"asdasda","Price":"12"}] 

を取得し、私が何をするか分かりません。 画像を処理する最適な方法は何ですか?

答えて

2

あなたがグループを使用することができますが、そのすべての画像を料理に参加する参加:

var query = from m in db.Dish 
      join t in db.TypeDish on m.idTypeDish equals t.idTypeDish 
      join i in db.ImageDish on m.idDish equals i.idDish into g   
      where m.idTypeDish == dish 
      select new DishModel() 
      {   
       Name = m.name, 
       CalorificValue = m.calorificValue, 
       Price = m.price, 
       ShortName = m.shortName, 
       Time = m.manufactureTime, 
       Description = m.description, 
       UrlImageList = g.Select(i => i.Image.urlImage).ToList() 
      }; 
+1

は、あなたが私の一日、保存、ありがとうございます! – kroz

関連する問題