这个问题是关于为什么我会使用上述关键字。我发现很多 MSDN 页面解释了如何。我正在寻找原因。
我要写什么查询意味着我需要它们?我问是因为我发现的例子似乎可以通过其他方式实现......
为了自己弄清楚,我使用 AdventureWorks 数据库中的 Employee 和 EmployeePayHistory 表创建了一个非常简单的实体模型。
我在网上看到的一个示例演示了类似于以下 Entity SQL 的内容:
SELECT VALUE
DEREF(CREATEREF(AdventureWorksEntities3.Employee, row(h.EmployeeID))).HireDate
FROM
AdventureWorksEntities3.EmployeePayHistory as h
这似乎撤回了 HireDate 而无需指定加入?
为什么这比下面的 SQL 更好(看起来完全一样)?
SELECT VALUE
h.Employee.HireDate
FROM
AdventureWorksEntities3.EmployeePayHistory as h
查看以上两个语句,我无法弄清楚 CREATEREF、DEREF 位添加了哪些额外内容,因为没有它们我似乎能够得到我想要的东西。
我假设我只是没有找到证明目的的场景。我假设在某些情况下使用这些关键字要么更简单,要么是完成所需结果的唯一方法。
我找不到的是场景....
任何人都可以填补空白吗?我不需要整套 SQL。我只需要一个起点,即一个或两个场景的简要描述......我可以自己扩展。