Share via


將 LightSwitch 當做資料來源

除了使用 LightSwitch 之外建置應用程式,您也可以用它來做為中介層提供資料給其他應用程式。 當您發行 LightSwitch 之應用程式資料至 Web 伺服器或與 Windows Azure) 時,該資料公開為開放式資料通訊協定 (OData) 服務。 OData 通訊是提供一種標準與這個相關聯的資料服務。 許多商務今天使用 OData 至系統和合作夥伴間交換資料,除了提供存取以外至資料存放區。 由於 OData 是的標準通訊協定,幾乎在所有平台或裝置的其他用戶端應用程式可以存取您透過 LightSwitch建立或公開的資料。

建立 OData 服務

OData 服務) 當做應用程式中的每個資料來源自動建立,與不同的端點與每個資料來源。 這個功能不僅適用於您在內部資料庫,也可以為任何附加的資料來源,例如 SQL Server 資料庫、SharePoint 清單,或甚至是另一 OData 服務的資料表。

LightSwitch 會公開多個 OData 端點

您為實體定義的商務邏輯和使用者權限會執行,而且當端點,存取,無論用戶端存取服務。 不撰寫商務邏輯和定義每一個用戶端應用程式的使用者權限,您可以使用 LightSwitch 中介層做為本機專注於您的程式碼。

存取的 LightSwitch OData 服務

當您在三層組態中部署的 LightSwitch 應用程式 (裝載於網際網路資訊服務 (IIS) 或 Windows Azure 中介層 (Middle Tier),服務端點所公開。 服務名稱會與您的資料來源名稱。 例如, ",因為它有兩個資料來源,在 逐步解說:建立 Vision Clinic 應用程式 的範例應用程式會公開 (Expose) 兩種服務端點:ApplicationData 資料庫,是內建和 PrescriptionContoso SQL 資料庫,附加。 如果應用程式在名為「www.contoso.com 的網站部署至 SharePoint 之後,」服務端點是 https://www.contoso.com/ApplicationData.svchttps://www.contoso.com/PrescriptionContoso.svc。

在每個服務內,您就可以巡覽至資料設計工具為模型的所有實體集。 OData 定義一組使用一組 URI 慣例,您可以在資料表上執行的查詢作業。 您可以查詢與 HTTP-GET 要求的服務,服務,並將傳回結果的饋送在回應中。 例如,您可以查詢與 URI https://www.contoso.com/PrescriptionContoso.svc/Products 的視覺診斷中的 PrescriptionContoso 服務會傳回包含來自產品實體的所有記錄的結果集。

注意事項注意事項

若要在 Internet Explorer 中未經處理的摘要資料的,您必須停用 [開啟饋送讀取檢視] 核取方塊。

OData 查詢區分大小寫,如果您指定 產品 而不是 產品,查詢不會傳回結果。 您可以進一步修改您的 OData 查詢使用數種方式。 例如,您可以使用 https://www.contoso.com/PrescriptionContoso.svc/Products(1) 查詢只會傳回具有產品 ID 1. 的產品。 若要傳回中的四個產品問題分類,您可以使用 https://www.contoso.com/PrescriptionContoso.svc/Products?Category='Lens Care 查詢。 您可以在 LightSwitch 仍定義的所有商務規則或套用使用權限。 因此,若要執行前述查詢的使用者需要權限才能檢視產品。

同樣地, OData 通訊協定在巡覽屬性定義巡覽關聯性的一種標準方法。 例如,您可以使用 https://www.contoso.com/PrescriptionContoso/Products(1)/ProductRebates 查詢尋找將產品編號 1 ProductRebates 在相關資料表中的產品折扣。 OData 支援許多其他查詢作業 (例如 OrderBy、 Top、 Skip和 Sort。 如需詳細資訊, OData:URI 慣例請參閱

取得 LightSwitch OData 服務

在許多情況下,您會想要控制誰在您的 OData 服務中可以存取和更新資料。 您可以使用自己的設定,控制 LightSwitch 應用程式。 LightSwitch 支援三個驗證設定:無,表單和視窗。

如果您選擇使用表單驗證時, LightSwitch 開始驗證兩個方式。 一個方式是登入對話方塊會使用,並使用自訂 API 以 Web 服務可以認證並取得表單驗證 Cookie 的自訂通訊協定。 如果所要求的資料不是有效的表單驗證 Cookie, LightSwitch 回應一個基本的 HTTP 要求。 這個回應允許在 LightSwitch 尚未開發透過驗證在標準 HTTP 通訊協定的用戶端。 如果您選取 Windows 驗證, LightSwitch 需要驗證的 Windows 使用者提供認證。 如需詳細資訊,請參閱LightSwitch 驗證和授權

任何驗證機制使用,應該考慮使用透過 HTTPS 的傳輸層級安全性安全認證、語彙基元和資料。 沒有使用 HTTPS,表單、基本驗證和表單驗證語彙基元傳輸為純文字。 Windows 驗證會更為安全,沒有 HTTPS,不過,,,以便在用戶端和伺服器之間的資料都會為純文字。 若要減輕這個問題, LightSwitch 有 HTTPS 設定會造成應用程式需要安全連接的 [發行精靈]。 如果啟用這個設定的功能,從 HTTP 要求會重新導向至 HTTPS,不過,您仍然必須取得和設定在您的網站上設定 HTTPS 憑證。 如需詳細資訊,請參閱LightSwitch 的安全性考量

除了取得應用程式的存取之外,您也可以在 LightSwitch 也可以使用以角色為基礎的安全性限制對特定實體的存取權。 例如,您可以讓所有已驗證的使用者顯示訂單資料,不過,只有 Supervisor 可以顯示薪資資料。 如需詳細資訊,請參閱LightSwitch 驗證和授權

LightSwitch 將隱藏或排除實體集不會提供一種直接的機制或實體屬性從 OData 端點。 您所連接到資料層才會在您的服務端點。 您可以使用內建方法存取控制項中的資料服務的程式碼,您可以控制對資源的存取。 如需詳細資訊,請參閱使用程式碼執行與資料相關的工作

下列範例顯示的程式碼在產品實體會讓使用者更新或刪除資料:

Namespace LightSwitchApplication
   Public Class PrescriptionContosoService
      Private Sub Product_CanUpdate(ByRef result As Boolean)
         result = False
      End Sub
      Private Sub Product_CanDelete(ByRef result As Boolean)
         result = False
      End Sub
      Private Sub Product_CanInsert(ByRef result As Boolean)
         result = False
      End Sub
   End Class
End Namespace
namespace LightSwitchApplication
{
   public partial class PrescriptionContosoService
   {
      partial void Product_CanUpdate(ref bool result)
      {
         result = false;
      }
      partial void Product_CanDelete(ref bool result)
      {
         result = false;
      }
      partial void Product_CanInsert(ref bool result)
      {
         result = false;
      }
   }
}

LightSwitch 也提供資料列層級篩選。 EntitySet_Filter 方法。 您可以使用這個方法,您可以將較小的一組實體的資料錄。 下列範例會傳回具有 TerritoryID 5 的客戶資料錄:

Private Sub Customers_Filter(ByRef filter As Expression(Of Func(Of Customer, Boolean)))
    filter = Function(e) e.TerritoryId = 5
End Sub
private void Customers_Filter(ref Expression<Func<Customer, bool>> filter)
{
filter = e => e.TerritoryId == 5;
}

使用的 LightSwitch OData 服務

支援在任何平台上的 OData 的所有應用程式都可以使用來自 LightSwitch的 OData 饋送。 連接至 OData 饋送方法由應用程式變更,不過,您通常會提供只 LightSwitch 服務端點。

LightSwitch 文件包含使用 OData 應用程式的幾個範例。

請參閱

工作

LightSwitch 驗證和授權

逐步解說:公開及使用 LightSwitch 中的 OData 服務

逐步解說:在 Windows 市集應用程式中使用 LightSwitch 資料

逐步解說:利用 PowerPivot 在 Excel 中使用 LightSwitch 服務

概念

公開 LightSwitch 應用程式資料

LightSwitch 的安全性考量

使用程式碼執行與資料相關的工作