-1

U2 Toolkitfor.NETとU2データベースを使用してWCFiDataService(RESTful Service)を作成したいと思います。次に、任意の.NETクライアントアプリケーションでoDataサービスを利用したいと思います。

4

1 に答える 1

3

以下の私の答えをご覧ください:

概要

WCF Data Servicesは、エンティティデータをデータサービスとして公開します。このエンティティデータは、U2 Toolkitfor.NETを使用してU2データベースから作成できます。このトピックでは、既存のデータベースに基づくVisual StudioWebアプリケーションでEntityFrameworkベースのデータモデルを作成し、このデータモデルを使用して新しいWCF oDataサービス(RESTfulサービス)を作成する方法を示します。WCF oData Serviceは、次のようなさまざまな.NETアプリケーションで使用できます。

  • WPFアプリケーション
  • Windows8Metroスタイルアプリケーション
  • オフィスエクセル

インストール

.NETv1.2.0用のU2ツールキットをインストールする必要があります。VisualStudio用のU2ADO.NETプロバイダーとU2データベースアドインが含まれています

ここに画像の説明を入力してください

既存のU2アカウントでエンティティデータモデルを作成する

「HS.SALES」と呼ばれるU2UniVerseのサンプルデータベースを使用します。1.「U2_WCF_oData_WebApplication」というASP.NETWebアプリケーションを作成します</p>

ここに画像の説明を入力してください

  1. [プロジェクト]メニューで、[新しいアイテムの追加]をクリックします。
  2. [テンプレート]ウィンドウで、[データ]カテゴリをクリックし、[ADO.NETエンティティデータモデル]を選択します。
  3. モデル名を入力し、[追加]をクリックします。 ここに画像の説明を入力してください

  4. [モデルコンテンツの選択]ダイアログボックスで、[データベースから生成]を選択します。次に、[次へ]をクリックします。

  5. [新しい接続]ボタンをクリックします。 ここに画像の説明を入力してください
  6. [接続のプロパティ]ダイアログボックスで、接続文字列パラメータを入力し、[OK]をクリックします。
  7. [App.Configにエンティティ接続設定を名前を付けて保存:]チェックボックスがオンになっていることを確認します。次に、[次へ]をクリックします。
  8. 「Entities」を「CustomerEntities」に変更します ここに画像の説明を入力してください
  9. [データベースオブジェクトの選択]ダイアログボックスで、データサービスで公開する予定のCUSTOMERおよびCUSTOMER_ORDERSを選択します。'CustomerModel'の'HS.SALESModel'を変更します。 ここに画像の説明を入力してください
  10. [完了]をクリックしてウィザードを完了します。 ここに画像の説明を入力してください

新しいデータモデル(顧客モデル)を使用してWCF oDataサービス(RESTfulサービス)を作成します

  1. Visual Studioで、データモデルを表すCustomer.edmxファイルを開きます。
  2. モデルブラウザで、モデルを右クリックし、[プロパティ]をクリックして、エンティティコンテナの名前をメモします。 ここに画像の説明を入力してください
  3. ソリューションエクスプローラーで、ASP.NETプロジェクトの名前を右クリックし、[新しいアイテムの追加]をクリックします。
  4. [新しいアイテムの追加]ダイアログボックスで、[WCFデータサービス]を選択します。
  5. サービスの名前を入力し、[OK]をクリックします。 ここに画像の説明を入力してください
  6. データサービスのコードで、コメントを置き換えます/ * TODO:ここにデータソースクラス名を入力します* /データサービスを定義するクラスの定義で、ObjectContextクラスから継承し、エンティティコンテナであるタイプを使用しますステップ2で記録されたデータモデルの。

public class U2_Customer_WcfDataService:DataService </ * TODO:データソースクラス名をここに入力します* />

public class U2_Customer_WcfDataService : DataService< CustomerEntities >
  1. データサービスのコードで、許可されたクライアントがデータサービスが公開するエンティティセットにアクセスできるようにします。詳細については、「データサービスの作成」を参照してください。

    // config.SetEntitySetAccessRule( "MyEntityset"、EntitySetRights.AllRead);

     config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
    
  2. Webブラウザを使用して「U2_Customer_WcfDataService.svc」データサービスをテストするには、Visual Studio->Debug->StartWithoutDebuggingを押します。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

WCF oDataサービス(RESTfulサービス)を使用する

  1. 同じソリューションでWPFプロジェクトを作成します。プロジェクトの名前を「U2_Consumer_WpfApplication」に変更します</li>

ここに画像の説明を入力してください 2.サービスリファレンスを追加します

ここに画像の説明を入力してください

  1. Discoverボタンを押し、「U2_WCF_oData_ServiceReference」の名前を変更します。OKを押します。

ここに画像の説明を入力してください

  1. [データ]->[データソースの表示]に移動します。

ここに画像の説明を入力してください

  1. 'CUSTOMERs'をWPFDesignerにドラッグアンドドロップします。

ここに画像の説明を入力してください

  1. 'MainWindow.xaml.cs'ファイルを開きます。この行を追加します(あなたのuriは異なります)。

    private Uri svcUri = new Uri( " http:// localhost:38346 / U2_Customer_WcfDataService.svc / ");

  2. この行を追加します。

    U2_WCF_oData_ServiceReference.CustomerEntities ctx = new U2_WCF_oData_ServiceReference.CustomerEntities(svcUri);

  3. この行を追加します。

    cUSTOMERsViewSource.Source = ctx.CUSTOMERs.ToList();

  4. 競合するコードは次のようになります。public部分クラスMainWindow:Window {private Uri svcUri = new Uri( " http:// localhost:38346 / U2_Customer_WcfDataService.svc / ");

    public MainWindow()
    {
        InitializeComponent();
    }
    
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        U2_WCF_oData_ServiceReference.CustomerEntities ctx = new U2_WCF_oData_ServiceReference.CustomerEntities(svcUri);
        System.Windows.Data.CollectionViewSource cUSTOMERsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("cUSTOMERsViewSource")));
        // Load data by setting the CollectionViewSource.Source property:
        // cUSTOMERsViewSource.Source = [generic data source]
        cUSTOMERsViewSource.Source = ctx.CUSTOMERs.ToList();
    }
    

    }

  5. WPFアプリケーションを「スタートアッププロジェクト」として設定します。WPFアプリケーションを実行します。

ここに画像の説明を入力してください

于 2013-01-14T15:51:48.420 に答える