本文整理汇总了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);
//.........这里部分代码省略.........