2017-06-23 14 views
0

私はisDeleted != trueの画像を選択します。 私はLINQでそのコードを持っていますが、私はすべての画像を持っているので何かが失敗しています。Linq選択画像isDeleted!= true

Wine wine = (
    from w in db.Wine 
    join img in (
     from i in db.ImageWine 
     where i.isDeleted != true 
     select i) 
    on w.idWine equals img.idWine 
    where w.idWine == id 
    select w 
).SingleOrDefault(); 

私はasp.net MVCかみそりに取り組んでいますCSHTML

@foreach (var item in Model.ImageWine) 
                    { 
                     <tr> 
                      <td class="text-center" id="IDProfile"><span>@Html.DisplayFor(m => item.idImageWine)</span></td> 
                      <td id="Name"><span>@Html.DisplayFor(m => item.Image.urlImage)</span></td> 
                      <td id="Image"><img src="@Url.Content("~/Images/"+ item.Image.urlImage)" class="img-thumbnail" width="200" height="150"/></td> 
                      <td class="td-actions text-right" id="Actions"> 
                       <a class="btn btn-simple btn-danger btn-icon table-action remove" id="Delete" href="javascript:;" rel="tooltip" title="" data-original-title="Remove"> 
                        <i class="fa fa-remove"></i> 
                       </a> 
                      </td> 
                     </tr> 
                    } 

+0

あなたがされるエラーは何ですか?あなたはそれがどのように反応すると思いますか、実際にどのような反応を得ていますか? – peinearydevelopment

+0

ワインごとにいくつかの画像がありますか? EntityFrameworkを使用していますか? 'wine'にナビゲーションプロパティがありますが、' wine.Images.FirstOrDefault(i =>!i.isDeleted) 'のようなことをすることができますか?モデルパーツを見せてもらえますか?これがMVCならコントローラの動作も表示できますか?また、あなたのcshtmlの字下げを修正してください。 – Rafalon

+0

私はすべてのイメージを常に取得しています。イメージはisDeleted = trueまたはfalseです。 – kroz

答えて

1

私は何が起こるかを理解すると思う:

あなたのビューにモデルとしてワインを渡し、そしてあなたはあなたのような特定のワインのためのすべての画像を取得することを可能にするナビゲーションプロパティを使用している場合:

wine.ImageWine 

linqクエリは画像をフィルタリングしていないので、何もしません。削除されていない少なくとも1つのイメージがある場合にのみ、ワインを提供します。あなたが行うことができ、あなたのビューで次に

@foreach (var item in Model.ImageWine) 
{ 
    if(!item.isDeleted){ 
     <tr> 
      <td class="text-center" id="IDProfile"><span>@Html.DisplayFor(m => item.idImageWine)</span></td> 
      <td id="Name"><span>@Html.DisplayFor(m => item.Image.urlImage)</span></td> 
      <td id="Image"><img src="@Url.Content("~/Images/"+ item.Image.urlImage)" class="img-thumbnail" width="200" height="150"/></td> 
      <td class="td-actions text-right" id="Actions"> 
       <a class="btn btn-simple btn-danger btn-icon table-action remove" id="Delete" href="javascript:;" rel="tooltip" title="" data-original-title="Remove"> 
        <i class="fa fa-remove"></i> 
       </a> 
      </td> 
     </tr> 
    } 
} 
+0

私はそれも考えましたが、LINQが作業を行うことができると思いました私のために。答えをありがとう。 – kroz

+0

Linqでは、選択したワインに対応する削除されていないすべての画像を取得することができます。モデルは 'Wine'のリストではなく' ImageWine'のリストになりますので、 '@foreach(var itemモデル内で)。しかし、これはあなたがワインの他の特性を必要としない場合にのみです。 – Rafalon

+0

よかった、ありがとう。 – kroz

関連する問題