如何使用U2 toolkit for .NET创建/使用WCF oData服务(RESTful服务)?

时间:2013-01-14 03:11:46

标签: rest odata u2 u2netdk

我想使用U2 Toolkit for .NET和U2 Database创建WCF oData服务(RESTful Service)。然后我想在任何.NET客户端应用程序中使用oData服务。

1 个答案:

答案 0 :(得分:3)

请参阅下面的答案:

<强>概述

WCF数据服务将实体数据公开为数据服务。可以使用U2 Toolkit for .NET从U2数据库创建此实体数据。本主题介绍如何在基于现有数据库的Visual Studio Web应用程序中创建基于实体框架的数据模型,并使用此数据模型创建新的WCF oData服务(RESTful服务)。 您可以在不同的.NET应用程序中使用WCF oData Service,例如:

  • WPF申请
  • Windows 8 Metro Style应用程序
  • Office EXCEL

<强>安装

您需要安装适用于.NET v 1.2.0的U2工具包。它包含用于Visual Studio的U2 ADO.NET Provider和U2 Database Add-ins

enter image description here

使用现有的U2帐户创建实体数据模型

我们将使用U2 UniVerse的样本数据库“HS.SALES”。 1.创建名为“U2_WCF_oData_WebApplication”的ASP.NET Web应用程序

enter image description here

  1. 在“项目”菜单上,单击“添加新项目”。
  2. 在“模板”窗格中,单击“数据”类别,然后选择“ADO.NET实体数据模型”。
  3. 键入型号名称,然后单击“添加”。 enter image description here

  4. 在“选择模型内容”对话框中,选择“从数据库生成”。然后单击“下一步”。

  5. 单击“新建连接”按钮。 enter image description here
  6. 在“连接属性”对话框中,键入连接字符串参数,然后单击“确定”。
  7. 确保选中“将App.Config中的实体连接设置保存为:”复选框。然后单击“下一步”。
  8. 将'实体'更改为'CustomerEntities' enter image description here
  9. 在“选择数据库对象”对话框中,选择您计划在数据服务中公开的CUSTOMER和CUSTOMER_ORDERS。修改'CustomerModel'的'HS.SALESModel'。 enter image description here
  10. 单击“完成”以完成向导。 enter image description here
  11. 使用新数据模型(客户模型)创建WCF oData服务(RESTful服务)

    1. 在Visual Studio中,打开表示数据模型的Customer.edmx文件。
    2. 在“模型浏览器”中,右键单击模型,单击“属性”,然后记下实体容器的名称。 enter image description here
    3. 在“解决方案资源管理器”中,右键单击ASP.NET项目的名称,然后单击“添加新项”。
    4. 在“添加新项”对话框中,选择“WCF数据服务”。
    5. 提供服务的名称,然后单击“确定”。 enter image description here
    6. 在数据服务的代码中,替换注释/ * TODO:将您的数据源类名称放在此处* /定义数据服务的类的定义中,其类型继承自ObjectContext类,即数据模型的实体容器,已在步骤2中注明。
    7. public class U2_Customer_WcfDataService:DataService&lt; / * TODO:将您的数据源类名称放在* /&gt;

      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 - &gt; Debug-&gt; StartWithoutDebugging

      3. enter image description here

        enter image description here

        enter image description here

        使用WCF oData服务(RESTful服务)

        1. 在同一解决方案中创建WPF项目。重命名项目“U2_Consumer_WpfApplication”
        2. enter image description here 2.添加服务参考

          enter image description here

          1. 按发现按钮,重命名'U2_WCF_oData_ServiceReference'。按确定。
          2. enter image description here

            1. 转到数据 - &gt;显示数据源。
            2. enter image description here

              1. 将“CUSTOMER”拖放到WPF Designer中。
              2. enter image description here

                1. 打开'MainWindow.xaml.cs'文件。添加这一行(你的uri会有所不同)。

                  私人Uri svcUri =新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 partial class MainWindow:Window {     私人Uri svcUri =新的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应用程序。

                6. enter image description here