Linq选择图像isDeleted!= true

时间:2017-06-23 11:55:42

标签: c# linq

我想选择isDeleted != true的图像。 我在LINQ中有这个代码,因为我得到了所有图像,所以有些失败了。

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();

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>
                                                                    }

我正在使用asp.net mvc razor。

1 个答案:

答案 0 :(得分:1)

我想我明白会发生什么:

如果您将葡萄酒作为模型传递给您的视图,并且您有一个导航属性,可以让您获得给定葡萄酒的所有图像,如:

wine.ImageWine

然后你的linq查询没有做你想做的任何事情,因为它没有过滤图像。如果它至少有一个图像不能删除,它只会给你葡萄酒。

然后在你看来你可以这样做:

@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>
    }
}