【问题标题】:How to connect one id from one table to a value from another table如何将一个表中的一个 id 连接到另一个表中的值
【发布时间】:2019-04-02 16:16:34
【问题描述】:

我用外键创建了 3 个表,Requests、RequestTypes 和 RequestStates。我有一个表单,我将有一个包含 RequestTypes 的下拉列表,例如(假日、低医疗)。用户将使用我之前所说的选项来选择请求的类型。我想要一个 foreach 在该选择上显示我在表 RequestTypes 上具有 id 的请求类型(表 Requests 上的外键(TypeId))。

提交表单后,将使用您在表请求中看到的值创建一个对象,因为我有一个 http 帖子将对象放入数据库(表请求)。在下拉列表中(在要提交的表单上)我想显示字符串而不是 id,所以我需要放置有关表 RequestTypes 但我想要的信息,当用户选择例如类型“Holiday”时id 是 1,用 TypeId = 1 填充对象。但我想出现在选择选项中,在表单中,字符串而不是 id。这可能与实体框架查询吗?我不知道是否可以加入 2 个表。我用我需要的 2 张桌子发布了这张图片。谢谢!

Tables Entity Framework

【问题讨论】:

  • 你能用一些代码更详细地解释一下吗?几乎所有查询和命令都可以通过实体框架实现
  • 您好!我用解决的问题回答了我的问题。谢谢! :)

标签: sql asp.net-mvc entity-framework


【解决方案1】:

我解决了这个问题。这很简单。

这是我控制器上的代码

public ActionResult Index(Requests rqst)
    {

        using (CiberbitHolidayTest context = new CiberbitHolidayTest())
        {
            ViewBag.requestTypes = context.RequestTypes.ToList();

        }

        return View("TimeOff");
    }

我必须做的是在剃刀视图中的选择选项上设置 value = "Type Id" 和 option = "Name",因为该值是关于服务器的。这很简单,但我认为我需要进行查询。

这是关于 foreach 的部分代码,用于列出选择选项中的项目。

<label for="example-text-input" class="col-8 col-form-label">Absence Type</label>
                        <div class="form-group row">  
                            <div class="col-md-12">
                                   <select id="absenceType" name="absenceType" ng-model="NewRequest.TypeId" class="form-control">
                                @foreach (var item in ViewBag.requestTypes) { 

                                <option value="@item.TypeId">@item.Name</option>
                                }

                            </select>
                          </div>     
                      </div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    相关资源
    最近更新 更多