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

  • 相关阅读:
    重装系统后texstudio拼写检查不工作
    git bash使用端口转发连接服务器
    YCSB-mapkeeper
    编译thrift外篇-关于默认链接包-(使用mapkeeper运行leveldb成功)
    编译Thrift
    Could not resolve view with name 'sys/login' in servlet with name 'dispatcher'
    Eclipse创建一个Maven Web项目
    Maven安装配置
    使用Maven创建Web应用程序项目
    org.apache.jasper.JasperException: Unable to compile class for JSP:
  • 原文地址:https://www.cnblogs.com/OOAbooke/p/2215694.html
Copyright © 2011-2022 走看看