-1

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

4

1 回答 1

3

请看下面我的回答:

概述

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

  • WPF 应用程序
  • Windows 8 Metro 风格应用程序
  • 办公室Excel

安装

您需要为 .NET v 1.2.0 安装 U2 工具包。它包含用于 Visual Studio 的 U2 ADO.NET 提供程序和 U2 数据库插件

在此处输入图像描述

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

我们将使用 U2 UniVerse 的名为“HS.SALES”的示例数据库。1. 创建名为“U2_WCF_oData_WebApplication”的 ASP.NET Web 应用程序</p>

在此处输入图像描述

  1. 在项目菜单上,单击添加新项目。
  2. 在模板窗格中,单击数据类别,然后选择 ADO.NET 实体数据模型。
  3. 键入模型名称,然后单击添加。 在此处输入图像描述

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

  5. 单击新建连接按钮。 在此处输入图像描述
  6. 在“连接属性”对话框中,键入连接字符串参数,然后单击“确定”。
  7. 确保选中将 App.Config 中的实体连接设置保存为:复选框。然后单击下一步。
  8. 将“实体”更改为“客户实体” 在此处输入图像描述
  9. 在“选择您的数据库对象”对话框中,选择您计划在数据服务中公开的 CUSTOMER 和 CUSTOMER_ORDERS。为“CustomerModel”修改“HS.SALESModel”。 在此处输入图像描述
  10. 单击完成以完成向导。 在此处输入图像描述

使用新数据模型(客户模型)创建 WCF oData 服务(RESTful 服务)

  1. 在 Visual Studio 中,打开表示数据模型的 Customer.edmx 文件。
  2. 在模型浏览器中,右键单击模型,单击属性,然后记下实体容器的名称。 在此处输入图像描述
  3. 在解决方案资源管理器中,右键单击 ASP.NET 项目的名称,然后单击“添加新项”。
  4. 在“添加新项”对话框中,选择 WCF 数据服务。
  5. 提供服务的名称,然后单击“确定”。 在此处输入图像描述
  6. 在数据服务的代码中,将注释 /* TODO: put your data source class name here */ 在定义数据服务的类的定义中替换为继承自 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. 按发现按钮,重命名“U2_WCF_oData_ServiceReference”。按确定。

在此处输入图像描述

  1. 转到数据-> 显示数据源。

在此处输入图像描述

  1. 将“客户”拖放到 WPF 设计器中。

在此处输入图像描述

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

    私有 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. 您的竞争代码将如下所示。公共部分类 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 回答