本文整理汇总了C#中Castle.ActiveRecord.Tests.Model.Blog.SaveAndFlush方法的典型用法代码示例。如果您正苦于以下问题:C# Blog.SaveAndFlush方法的具体用法?C# Blog.SaveAndFlush怎么用?C# Blog.SaveAndFlush使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Castle.ActiveRecord.Tests.Model.Blog
的用法示例。
在下文中一共展示了Blog.SaveAndFlush方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SessionScopeFlushModeNever
public void SessionScopeFlushModeNever()
{
ActiveRecordStarter.Initialize(GetConfigSource(), typeof(Post), typeof(Blog));
Recreate();
Post.DeleteAll();
Blog.DeleteAll();
using(new SessionScope(FlushAction.Never))
{
Blog blog = new Blog();
blog.Author = "hammett";
blog.Name = "some name";
//This gets flushed automatically because of the identity field
blog.Save();
Blog[] blogs = Blog.FindAll();
Assert.AreEqual(1, blogs.Length);
//This change won't be saved to the db
blog.Author = "A New Author";
blog.Save();
//The change should not be in the db
blogs = Blog.FindByProperty("Author", "A New Author");
Assert.AreEqual(0, blogs.Length);
SessionScope.Current.Flush();
//The change should now be in the db
blogs = Blog.FindByProperty("Author", "A New Author");
Assert.AreEqual(1, blogs.Length);
//This change will be save to the db because it uses the SaveNow method
blog.Name = "A New Name";
blog.SaveAndFlush();
//The change should now be in the db
blogs = Blog.FindByProperty("Name", "A New Name");
Assert.AreEqual(1, blogs.Length);
//This deletion should not get to the db
blog.Delete();
blogs = Blog.FindAll();
Assert.AreEqual(1, blogs.Length);
SessionScope.Current.Flush();
//The deletion should now be in the db
blogs = Blog.FindAll();
Assert.AreEqual(0, blogs.Length);
}
}