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生成的字段,来作为主键。

  • 相关阅读:
    定时器
    js中script的上下放置区别 , Dom的增删改创建
    函数声明与应用
    常规选择器
    表格的制作
    流程控制
    For循环
    洛谷P1419寻找段落
    洛谷P1021邮票面值设计
    洛谷P3119草鉴定
  • 原文地址:https://www.cnblogs.com/OOAbooke/p/2215694.html
Copyright © 2011-2022 走看看