zoukankan      html  css  js  c++  java
  • (DevExpress2011 学习)XPO 学习之2 数据记录增 删 改 与继承

    4.       数据记录增

    4.1     Delete Method 删除

    如果持久性对象有删除延迟属性,Delete方法不会实际删除数据表里德记录. 代替的,它只是对该记录做了删除的标记,以后你可以使用Session.PurgeDeletedObjects删除. 或者你可以清楚这些删除标记,这些对象不会被清楚. 如果你要保持这种删除状态,使用Save方法保存对象.

    如上例 : TitleType.Delete(); 

     

    物理删除 清除所有被标记软删除的记录

    Session.DefaultSession.PurgeDeleteObjects();

    4.2      增加

    private void BuildTable()
            {
                TitleType  myType = new TitleType(ComSession.DBSession); // ComSession.DBSession 是自定义的Session  

                myType.typeName = "类型名称";

                myType.Save();
            }

    4.3     修改

    TitleType myType = (TitleType)this.gridView1.GetRow(myrow); //找到对应行记录
    myType.typeName = "被改的名称";
    myType.Save()

    5.       获取SQL 执行结果

    Session.ExecuteQuery Session.ExecuteSproc方法返回它们执行的结果SelectedData对象实例. 这个数组中包含SelectStatementReslut对象,每个SelectStatementResult项包含相对的SELECT 选择命令执行的SQL Query结果或者是存储过程执行结果. SelectStatementResult 项目提供SelectStatementResult.Rows属性,它允许你去访问每个SeelctStatementResultRow对象的行结果. 每个SelectStatementResult对象有一个values属性,为访问每个不同列中的行结果提供值.

    SelectedData sData = ComSession.DBSession.ExecuteQuery("select typeName,OID from TitleType");
     foreach (SelectStatementResultRow row in sData.ResultSet[0].Rows)
     Console.WriteLine(row.Values[0]);

    6.        继承

    XPO提供 2种通用的关系数据库继承映射解决方案

    . 单表继承将所有表层次映射成单表

    .类表继承映射每个类为它们的表

     

    我们新建一个TitleType的父类   

    public class TitleTypeFather : XPObject {

                       public TitleTypeFather() : base() {

                       }

                       public TitleTypeFather(Session session) : base(session) {
                       }

                       public override void AfterConstruction() {
                                base.AfterConstruction();
                                // Place here your initialization code.
                       }

            string _testmemo;
            [Size(50), NullValue("123")]
            public string TestMemo
            {
               set
                { SetPropertyValue<string>("TestMemo"ref _testmemo, value);            }
                get

               { return _testmemo; }
            }
         }

     

    然后将原来的TitleType类改动一下如下


    [MapInheritance(MapInheritanceType.ParentTable)]
      public class TitleType : TitleTypeFather {
            string _typeName;
            [Size(50)]
            public string typeName
            {
                set
                { SetPropertyValue<string>("typeName"ref _typeName, value); }
                get
                {   return _typeName;                }
            }

            string _memo;
            [Size(50),NullValue("123")]
            public string Memo
            {
                set
                { SetPropertyValue<string>("Memo"ref _memo, value); }
                get
                { return _memo; }
            }
            [Persistent ]
            DateTime _DateTime;
            public DateTime date
            {
                get {
                    _DateTime = DateTime.Now;
                    return _DateTime;
                }
            }

         public TitleType() : base() {
                       }

         public TitleType(Session session)
                : base(session)
            {
             }

              base.AfterConstruction();
            // Place here your initialization code.
         }
    }

    在实际操作中,只要你引用了TitleTypeFather,它自动将子类的属性当自己的属性直接使用

    看看数据库中TitleTypeFather实际表结构为
     

  • 相关阅读:
    Android学习笔记----天地图API开发之UnsatisfiedLinkError
    Android学习笔记----ArcGIS在线地图服务(Android API)坐标纠偏
    Android学习笔记----Java字符串MD5加密
    Android学习笔记----Java中的字符串比较
    MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx: Unknown command ''.
    新浪微博POI点签到数据及可视化的初步成果
    Chrome调试本地文件无法使用window.opener对象进行窗口间值传递
    132、Android安全机制(2) Android Permission权限控制机制(转载)
    用addOnGlobalLayoutListener获取View的宽高
    Android Studio解决unspecified on project app resolves to an APK archive which is not supported
  • 原文地址:https://www.cnblogs.com/meetweb/p/2248908.html
Copyright © 2011-2022 走看看