如何从mvc razor中的外键中取出表中的不同值

时间:2017-02-28 11:03:21

标签: sql-server asp.net-mvc linq asp.net-mvc-4 razor

当我做一个项目时,我在一个地方感到困惑,只能从表中检索唯一值。对于我在linq查询中的不同的groupby子句,但是我遇到了一些错误。我有两个表,类别表的id是外键,我需要从另一个库表中只检索不同的id

模型

   public ActionResult GalleryCata()
    {
        var res = db.Galleries.ToList();
        return View(res);
    }

这是modelid是图库类的外键的模型

控制器

 @model List<ThaniyamBank.Models.Gallery>

  @for (var j = 0; j < Model.Count(); j++)
        {
            <div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">
                <div class="hovereffect">
                    <img src="@Url.Content("~/GalleryImages/" + @Html.DisplayFor(m => m[j].Image))" class="img-responsive" alt="" />
                    <div class="overlay">
                        <h2>@Html.DisplayFor(m => m[j].Category.CategoryName) </h2>
                        <a class=" fancybox info " href="@Url.Content("~/GalleryImages/" + @Html.DisplayFor(m => m[j].Image))" data-fancybox-group="gallery"><i class="fa fa-eye" aria-hidden="true"></i></a>
                        <a class="info " href="gallery.html"><i class="fa fa-link" aria-hidden="true"></i></a>
                    </div>
                </div>
            </div>
        }

视图

method.apply(target, …

我需要根据类别显示图像。当我运行应用程序时,我从表中获取所有图像,而不是基于类别。谁能帮我解决问题?

1 个答案:

答案 0 :(得分:0)

Select告诉EF检索某个值,因此db.Galleries.Select(x=>x.CategoryId)返回一个整数集合,因此您会收到错误消息。

您想要的是使用Where子句:

var res = db.Galleries.Where(x => x.CategoryId == selectedCategoryId).ToList();

返回IList<Gallery>。您需要将int selectedCategoryId传递给您的操作。

只有当您希望同一个图库多次包含在同一类别中时,才需要

Distinct