当前位置: 首页>>代码示例>>C#>>正文


C# SessionNoServer.Unpersist方法代码示例

本文整理汇总了C#中SessionNoServer.Unpersist方法的典型用法代码示例。如果您正苦于以下问题:C# SessionNoServer.Unpersist方法的具体用法?C# SessionNoServer.Unpersist怎么用?C# SessionNoServer.Unpersist使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SessionNoServer的用法示例。


在下文中一共展示了SessionNoServer.Unpersist方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Create

    public void Create()
    {
      using (SessionBase session = new SessionNoServer(systemDir))
      {
        session.BeginUpdate();
        WeakReferenceList<BaseClassA> baseClassAList = new WeakReferenceList<BaseClassA>();
        session.Persist(baseClassAList);
        for (int i = 0; i < 5; i++)
        {
          var classA = new BaseClassA();
          session.Persist(classA);
          baseClassAList.Add(classA);
        }        
        WeakReferenceList<ClassB> classBList = new WeakReferenceList<ClassB>();
        session.Persist(classBList);
        for (int i = 0; i < 5; i++)
        {
          var classB = new ClassB();
          classBList.Add(classB);
          baseClassAList.Add(classB);
        }
        var aList = (from aClass in baseClassAList orderby aClass.RandomOrder select aClass).ToList();
        WeakReferenceList < ClassC > classCList = new WeakReferenceList<ClassC>();
        session.Persist(classCList);
        for (int i = 0; i < 5; i++)
        {
          var classC = new ClassC();
          classCList.Add(classC);
        }
        ClassD d = new ClassD();
        session.Persist(d);

        for (int i = 0; i < 5; i++)
        {
          var classFromB = new ClassFromB();
          session.Persist(classFromB);
        }
        session.Commit();
      }

      using (SessionBase session = new SessionNoServer(systemDir))
      {
        session.BeginRead();
        Assert.AreEqual(5, session.AllObjects<BaseClassA>(false).Count);
        int ct = session.AllObjects<BaseClassA>(true).Skip(5).Count();
        Assert.Less(5, ct);
        object obj = session.AllObjects<BaseClassA>(true).Skip(5).First();
        Assert.NotNull(obj);
        obj = session.AllObjects<BaseClassA>(true).Skip(6).First();
        Assert.NotNull(obj);
        Assert.AreEqual(20, session.AllObjects<BaseClassA>().Count);
        Assert.AreEqual(5, session.AllObjects<ClassB>(false).Count);
        Assert.AreEqual(10, session.AllObjects<ClassB>().Count);
        obj = session.AllObjects<ClassB>(true).Skip(5).First();
        Assert.NotNull(obj);
        obj = session.AllObjects<ClassB>(true).Skip(4).First();
        Assert.NotNull(obj);
        obj = session.AllObjects<ClassB>(true).Skip(6).First();
        Assert.NotNull(obj);
        Assert.AreEqual(5, session.AllObjects<ClassC>(false).Count);
        Assert.AreEqual(5, session.AllObjects<ClassC>().Count);
        ct = 0;
        foreach (var o in session.AllObjects<BaseClassA>(false))
          ++ct;
        Assert.AreEqual(5, ct);
        ct = 0;
        foreach (var o in session.AllObjects<BaseClassA>())
          ++ct;
        Assert.AreEqual(20, ct);
        ct = 0;
        foreach (var o in session.AllObjects<ClassB>())
          ++ct;
        Assert.AreEqual(10, ct);
        ct = 0;
        foreach (var o in session.AllObjects<ClassC>())
          ++ct;
        Assert.AreEqual(5, ct);
        ct = 0;
        foreach (var o in session.AllObjects<IOptimizedPersistable>())
          ++ct;
        int ct2 = 0;
        foreach (var o in session.AllObjects<OptimizedPersistable>())
          ++ct2;
        int ct3 = 0;
        foreach (var o in session.AllObjects<IHasClassName>())
          ++ct3;
        session.Commit();
      }

      using (SessionBase session = new SessionNoServer(systemDir))
      {
        session.BeginUpdate();
        foreach (var o in session.AllObjects<WeakReferenceList<BaseClassA>>())
          o.Unpersist(session);
        foreach (var o in session.AllObjects<WeakReferenceList<ClassB>>())
          o.Unpersist(session);
        foreach (var o in session.AllObjects<WeakReferenceList<ClassC>>())
          o.ClearAndUnpersistContainedObjects(session);
        foreach (var o in session.AllObjects<IHasClassName>())
          session.Unpersist(o);
//.........这里部分代码省略.........
开发者ID:VelocityDB,项目名称:VelocityDB,代码行数:101,代码来源:AllObjectsTest.cs


注:本文中的SessionNoServer.Unpersist方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。