0

我有两个表,它们在 azure 数据库管理器中被索引。所以我在第二个表中有外键。我的桌子是例如

OrderTable (OrderId,OrderDate,CustomerId) /CustomerId 是我的外键

客户表(客户 ID、客户名称、....)

所以我只想要这样的查询:

Select *
From OrderTable o1,CustomerTable c1
Where c1.CustomerId=o1.CustomerId

我使用了 microsoft 示例 TodoItems,并且我已经可以像这样在一个表上进行查询:

    items = await todoTable
    .Where(todoItem => todoItem.Date >= DateTime.Now)
    .ToCollectionAsync();
    .ToListAsync();

因此,在我的应用程序中,我得到了两个表,是否有任何选项可以像上面那样查询连接的表?

4

2 回答 2

2

您可以在 LINQ 中执行连接,但在您的情况下,创建执行连接的视图然后使用 LINQ 从中选择可能更容易。

此外,您应该避免使用旧的连接语法 - 它将在某些时候停止支持 - 并使用 INNER JOIN 子句,即

    SELECT * FROM OrderTable o1 INNER JOIN CustomerTable c1 
    ON c1.CustomerId = o1.CustomerId
于 2013-11-13T09:17:27.053 回答
1

像 Rikalous 指出的那样创建一个视图。您可以通过单击 Windows azure 门户上的 Sql Databases 来执行此操作。选择您的服务器,然后单击位于右下角仪表板页面上的“管理 URL”。

登录后,单击“新建查询”,然后只需输入 sql 代码即可创建视图。

CREATE mySchema.myView AS
SELECT * FROM Table t1 INNER JOIN OtherTable t2 ON t1.a=t2.b

创建视图后,返回到您的 Windows Azure 门户。转到您的移动服务并创建一个新表。使用您的视图名称创建表,系统将检测视图并将其呈现给您。您将看到不存在默认列,也不会显示任何数据。但是您将能够像查询任何其他表一样查询它,而且您还可以修改其插入/更新/读取脚本。

*重要提示:仔细检查您的视图是否是在正确的架构上创建的。在移动服务上添加表后还要仔细检查服务器上没有创建表。

于 2014-02-14T05:16:14.017 回答