博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DevExpress 动态创建实例化类 (xpo)
阅读量:4978 次
发布时间:2019-06-12

本文共 1406 字,大约阅读时间需要 4 分钟。

使用xpo(devexpress)时动态创建一个持久化类。这样方便访问数据库。
/*
使用DevExpress 控件 xpo
XPObject 持久化对象 数据库访问 表 XPObject
*/
//z 2011-07-27 22:06:55@is2120.CSDN 转载请注明出处
class Program {
    static void Main(string[] args) {
        XpoDefault.DataLayer =
            XpoDefault.GetDataLayer(DevExpress.Xpo.DB.AutoCreateOption.DatabaseAndSchema);
        XPDictionary dictionary = XpoDefault.DataLayer.Dictionary;
        XPClassInfo myBaseClass = dictionary.GetClassInfo(typeof(MyBaseObject));
    
    //z 动态创建持久化类(XPO)
        XPClassInfo myClassA = dictionary.CreateClass(myBaseClass, "MyObjectA");
    //z 为之添加member,每个代表了一个列名
        myClassA.CreateMember("ID"typeof(int));
        myClassA.CreateMember("Name"typeof(string));
        //z 2011-07-27 22:06:55@is2120.CSDN 转载请注明出处
    //z 从数据库中得到myClassA表信息
        XPCollection collection = new XPCollection(XpoDefault.Session, myClassA);
    //z 为新对象生成一个唯一的ID
        Random rnd = new Random();
        int newId;
        do {
            newId = rnd.Next(100);
        } while(XpoDefault.Session.GetObjectByKey(myClassA, newId) != null);
    //z 创建一个新的实例
        MyBaseObject objNew = (MyBaseObject)myClassA.CreateNewObject(XpoDefault.Session);
    }
}
//z  创建一个持久化类,注意从XPLiteObject创建。
[NonPersistent]
public class MyBaseObject : XPLiteObject {
    public MyBaseObject(Session session)
    : base(session) { }
    public MyBaseObject(Session session, XPClassInfo classInfo)
    : base(session, classInfo) { }
}
//z 2013-02-27 14:01:30 IS2120@BG57IV3.T2355831976.K[T215,L2906,R88,V3140]

转载于:https://www.cnblogs.com/IS2120/archive/2011/07/27/6746030.html

你可能感兴趣的文章