Javascript 如何在Lightswitch中加载外部数据源的相关实体(Visual Studio 2013)

Javascript 如何在Lightswitch中加载外部数据源的相关实体(Visual Studio 2013),javascript,visual-studio-2013,azure-sql-database,visual-studio-lightswitch,lightswitch-2013,Javascript,Visual Studio 2013,Azure Sql Database,Visual Studio Lightswitch,Lightswitch 2013,我有两个表,它们都位于连接到我的Lightswitch Sharepoint应用程序的Azure SQL数据库中。我正在代码中对数据进行一些操作,它似乎正在工作,只是当我从一个表中加载实体时,我无法看到另一个表中的相关实体 基本上,我有一个产品表和一个发票行表。每个发票行记录都包含一个与产品表PK相关的产品代码。我已经在Lightswitch中定义了关系,但是当我加载发票行记录时,我看不到产品信息 我的代码如下: // Select invoice and get products myapp.

我有两个表,它们都位于连接到我的Lightswitch Sharepoint应用程序的Azure SQL数据库中。我正在代码中对数据进行一些操作,它似乎正在工作,只是当我从一个表中加载实体时,我无法看到另一个表中的相关实体

基本上,我有一个产品表和一个发票行表。每个发票行记录都包含一个与产品表PK相关的产品代码。我已经在Lightswitch中定义了关系,但是当我加载发票行记录时,我看不到产品信息

我的代码如下:

// Select invoice and get products
myapp.AddEditServiceRecord.InvoicesByCustomer_ItemTap_execute = function (screen) {
    screen.ServiceRecord.InvoiceNumber = screen.InvoicesByCustomer.selectedItem.INVO_NO;

    // Delete existing lines (if any)
    screen.ServiceDetails.data.forEach(function (line) {
        line.deleteEntity();
    });

    // Add products for selected invoice
    screen.getInvoiceLinesByNumber().then(function (invLines) {
        invLines.data.forEach(function (invLine) {
            invLine.getProduct().then(function (invProduct) {
                var newLine = new myapp.ServiceDetail();

                newLine.ServiceRecord = screen.ServiceRecord;
                newLine.ProductCode = invLine.ProductCode;
                newLine.ProductDescription = invProduct.Description;
                newLine.CasesOrdered = invLine.Cases;
            });            
        });
    });
};
其思想是在“InvoicesByCustomer”屏幕上显示发票列表,用户单击其中一个将该发票的详细信息添加到“ServiceRecord”表中。如果我注释掉
newLine.ProductDescription=invProduct.Description
行,它可以完美地添加正确的产品代码和案例值。我还尝试了以下代码的一些其他组合,但在每种情况下,相关的产品实体在Javascript调试器中都显示为
undefined


编辑:我还阅读了这篇关于包含相关数据()的文章,并注意到了关于“静态跨度”的部分。我检查了一下,设置为“自动(排除)”,所以我把它改为“包括”,但不幸的是,这没有什么区别。我仍然收到
invProduct未定义
消息。我还尝试了简单的
invLine.Product.Description
,但它给出了相同的错误。

本例中的解决方案很简单。我的数据是错误的,因此Lightswitch的工作是正确的

在我的
发票
表中,产品代码类似于
'A123'
,而在我的
产品
表中,产品代码是
'A123'
(右侧用空格填充)。对数据执行SQL查询时,它能够匹配记录,但Lightswitch(正确地)认为这两个字段不同,因此无法将它们关联起来

我可能在这上面浪费了好几个小时,但当我学到了一些东西时,这并不是浪费……或者我会告诉自己