如何将一个表中的一个ID连接到另一表中的值

时间:2019-04-02 16:16:35

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

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

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

Tables Entity Framework

1 个答案:

答案 0 :(得分:0)

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

这是我控制器上的代码

public ActionResult Index(Requests rqst)
    {

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

        }

        return View("TimeOff");
    }

我需要做的是在razor视图中的“我的选择”选项中输入了值=“ Type Id”,然后 option =“ Name”,因为该值与服务器有关。很简单,但我认为我需要进行查询。

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

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