• 关于ObjectSpace的Delay Loading


    Delay Loading在现阶段的ObjectSpace并不是太好,很不稳定。而且Mapping工具不支持设置Delay Loading。
    我的解决办法是构建一个泛型的集合类,然后在前一个关系对象添加个为这个类型的属性,在get访问器中构建类的实例,然后返回。

    集合类代码:

    public class MyObjects<Objectype> : CollectionBase
    {

    private ObjectSet<Objectype> obs;
    private System.Data.ObjectSpaces.ObjectSpace os;
    private SqlConnection con = new SqlConnection("Server=localhost;DataBase=northwind;UID=sa;PWD=;");


    /// <summary>
    /// 根据ID建立一个对象集合
    /// </summary>
    /// <param name="QueryString">查询字串(大小写敏感)</param>
    /// <param name="ObjName">希望构建的对象类型名称</param>

    public MyObjects(string QueryString)
    {

    try
    {
    os = new ObjectSpace("data.msd", con);

    obs = os.GetObjectSet<Objectype>(QueryString);
    foreach (Objectype obj in obs)
    {
    Add(obj);
    }
    }
    catch (Exception ex)
    {
    throw new Exception("构造对象集合错误,原因:数据库错误或者没有需要的对象\n" + ex.ToString());
    }

    }
    }

    属性访问器的代码片断:

    private MyObjects<Orders> myVar;

    public MyObjects<Orders> orders
    {
    get
    {
    MyObjects<Orders> or = new MyObjects<Orders>("customerID='" + this.iD + "'");
    return or;

    }
    set { myVar = value; }
    }

  • 相关阅读:
    go包初始化顺序
    go map
    go包管理
    C++ 线程池
    RAFT共识算法笔记
    最大子序列和
    常见网络攻击及其防御
    go常用标准库功能
    using代替typedef
    typename和class的区别
  • 原文地址:https://www.cnblogs.com/format/p/5864.html
Copyright © 2020-2023  润新知