zoukankan      html  css  js  c++  java
  • XPO学习(2)关系(一对多)

    任务:

    创建一个能够查看和修改 ”客户-订单 “的应用程序,一个客户对应多个订单。关系如图:

    解决方案:

    1.和上一节一样添加一个Customer 的持久类;添加两个属性:Name和Age;

    2.添加Order的持久类:添加两个属性:ProductName,OrderDate;

            public string ProductName;
    public DateTime OrderDate;

    3.为两个持久类添加一对多关系:分别在Order类和Customer类中各添加一个属性,并且应用Association特性。代码如下:

    Order类:

            [Association("Customer-Orders")]
    public Customer Customer
    {
    get { return _customer; }
    set { SetPropertyValue("Customer", ref _customer, value); }
    }

    Customer类:

            [Association("Customer-Orders")]
    public XPCollection<Order> Orders { get { return GetCollection<Order>("Orders"); } }

    说明:Association特性是用来为属性指定关系的,其中参数就是所指定的关系的名称。

       XPColleciton<T>是一个对象集合的泛型类。GetColleciton(string 属性名称) :它用来返回所有的持久化对象。

    4.为在窗体启动时添加些记录,在FormLoad事件里 添加如下代码:

            private void Form1_Load(object sender, EventArgs e)
    {
    Customer cm = new Customer();
    cm.Name = "John";
    cm.Age = 21;
    Order order = new Order();
    order.ProductName = "Chai";
    order.OrderDate = new DateTime(2006, 5, 17);
    cm.Orders.Add(order);
    order = new Order();
    order.ProductName = "Konbu";
    order.OrderDate = new DateTime(2006, 8, 23);
    cm.Orders.Add(order);
    xpCollection1.Add(cm);
    cm.Save();

    cm = new Customer();
    cm.Name = "Bob";
    cm.Age = 37;
    order = new Order();
    order.ProductName = "Queso Cabrales";
    order.OrderDate = new DateTime(2006, 2, 9);
    cm.Orders.Add(order);
    xpCollection1.Add(cm);
    cm.Save();

    }

    5.界面设计.拖拽一个GridControl 和一个XPCollection 

    设置XPCollection的ObjectClassInfo属性为Customer (注意先生成一下项目,要不看不到),然后设置gridcontrol的DataSource属性。ok,启动调试。界面如下




    结束语:

    这一节我们实现了一对多关系的简单应用。至于gridcontrol的使用没有过多赘述,因为以前接触过。

    我们看看数据库,关系创建OK了。OID字段是XPO生成的字段,来作为主键。

  • 相关阅读:
    创建自定义图标和图像
    使用_CRTDBG_LEAK_CHECK_DF检查VC程序的内存泄漏(转)
    Hadoop Netflix数据统计分析2(转)
    系统提供的按钮和图标
    STATIC变量问题
    表格视图,文本视图和Web视图
    Hadoop Netflix数据统计分析1(转)
    获取程序数据路径(转)
    C++中STRING转为INT (转)
    netflix 推荐算法学习1(转)
  • 原文地址:https://www.cnblogs.com/OOAbooke/p/2215694.html
Copyright © 2011-2022 走看看