【问题标题】:How to join two APIs in Javascript similar to a SQL join如何在 Javascript 中连接两个 API,类似于 SQL 连接
【发布时间】:2018-08-13 18:59:45
【问题描述】:

我发现这个问题与我要问的问题相似,但不完全相同:Is there some way I can "join" the contents of two javascript arrays much like I would do a join in SQL

在那个问题中,用户提供了两个他们想以类似 SQL 的方式加入的数组。

我的不同之处在于我设置了多个 API 来引用数据库。我需要让 API “加入”一个值。

以下是类的粗略示例:

public partial class test_review
{
    [Key]
    public int rating_id { get; set; }
    public int site_id { get; set; }
    public string comments { get; set; }
}

和:

public partial class test_site
{
    [Key]
    public int site_id { get; set; }
    [Required]
    [StringLength(3)]
    public string site_name { get; set; }
}

如果我是用 SQL 写的,我会做类似的事情

SELECT r.rating_id, s.site_name, r.comments 
FROM test_review r
INNER JOIN test_site s on r.site_id = s.site_id

目前,我的 ReadReviews.aspx 页面中的代码如下所示:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <script src="Scripts/jquery-3.3.1.min.js"></script>
    <script type="text/javascript">
        function getReviews() {
            $.getJSON("api/review",
                function (data) {
                    $('#reviews').empty();
                    $.each(data, function (key, val) {
                        var row = '<td>' + val.rating_id + '</td><td>' + val.airport_id + '</td>';
                        $('<tr/>', { html: row })
                            .appendTo($('#reviews'));
                    });
                });
        }
        $(document).ready(getReviews);
    </script>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <h2> Here are the API reviews</h2>
            <table>
                <thead> 
                    <tr>    
                        <th>Rating_id</th>
                        <th>airport_id</th>
                    </tr>
                </thead>
                <tbody id ="reviews">
                </tbody>
            </table>

</asp:Content>

(注意:这个jquery代码来自https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/using-web-api-with-aspnet-web-forms

这很好,但不是我在这种情况下要寻找的。我需要结合来自两个 API 的信息。

创建几个视图会更好吗?我知道我可以做到这一点,但我不确定它是否比直接从表格中提取并以某种方式组合它们更好/更有效/更快。

【问题讨论】:

  • 用 C# 合并这两个数据集,然后将数据发送到浏览器。
  • @VDWWD 我会在哪里做呢?我是否需要创建一个新班级才能做到这一点?或者我是否必须以某种方式在 ReadReviews.aspx.cs 页面中执行此操作?
  • 这些模型/类是否在单独的解决方案中?如果没有,那么 cpuld 你使用 LINQ 加入 stackoverflow.com/a/26094503/470014 吗?
  • 视情况而定,但您可以创建一个新类或从另一个类继承一个。有很多方法可以做到这一点。

标签: c# jquery asp.net webforms asp.net-web-api2


【解决方案1】:

我最终做的是创建一个 SQL 视图并专门为该视图创建第二个 API,以返回我需要的所有数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-17
    • 2015-12-12
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多