本文整理汇总了C#中Raven.Client.Shard.ShardedDocumentStore.Dispose方法的典型用法代码示例。如果您正苦于以下问题:C# ShardedDocumentStore.Dispose方法的具体用法?C# ShardedDocumentStore.Dispose怎么用?C# ShardedDocumentStore.Dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Raven.Client.Shard.ShardedDocumentStore
的用法示例。
在下文中一共展示了ShardedDocumentStore.Dispose方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Index
public Index()
{
#region store
var shards = new Dictionary<string, IDocumentStore>
{
{"Asia", new DocumentStore {Url = "http://localhost:8080"}},
{"Middle East", new DocumentStore {Url = "http://localhost:8081"}},
{"America", new DocumentStore {Url = "http://localhost:8082"}},
};
var shardStrategy = new ShardStrategy(shards)
.ShardingOn<Company>(company => company.Region)
.ShardingOn<Invoice>(x => x.CompanyId);
var documentStore = new ShardedDocumentStore(shardStrategy).Initialize();
#endregion
#region SaveEntities
using (var session = documentStore.OpenSession())
{
var asian = new Company { Name = "Company 1", Region = "Asia" };
session.Store(asian);
var middleEastern = new Company { Name = "Company 2", Region = "Middle-East" };
session.Store(middleEastern);
var american = new Company { Name = "Company 3", Region = "America" };
session.Store(american);
session.Store(new Invoice { CompanyId = american.Id, Amount = 3, IssuedAt = DateTime.Today.AddDays(-1) });
session.Store(new Invoice { CompanyId = asian.Id, Amount = 5, IssuedAt = DateTime.Today.AddDays(-1) });
session.Store(new Invoice { CompanyId = middleEastern.Id, Amount = 12, IssuedAt = DateTime.Today });
session.SaveChanges();
}
#endregion
#region Query
using (var session = documentStore.OpenSession())
{
//get all, should automagically retrieve from each shard
var allCompanies = session.Query<Company>()
.Customize(x => x.WaitForNonStaleResultsAsOfNow())
.Where(company => company.Region == "Asia")
.ToArray();
foreach (var company in allCompanies)
Console.WriteLine(company.Name);
}
#endregion
documentStore.Dispose();
}
示例2: Main
static void Main()
{
var consoleAppender = new ConsoleAppender
{
Layout = new SimpleLayout(),
};
consoleAppender.AddFilter(new LoggerMatchFilter
{
AcceptOnMatch = true,
LoggerToMatch = "Raven.Client"
});
consoleAppender.AddFilter(new DenyAllFilter());
BasicConfigurator.Configure(consoleAppender);
// start 5 instances of Raven's servers
Console.WriteLine("Starting...");
DeleteDirectories("Users", "Blogs", "Posts.1", "Posts.2", "Posts.3");
var ravenDbServers = StartServers();
Console.WriteLine("All servers started...");
var shards = new Shards
{
new DocumentStore
{
Identifier = "Users",
Url = "http://localhost:8081",
Conventions =
{
DocumentKeyGenerator = user => "users/" + ((User) user).Name
}
},
new DocumentStore {Identifier = "Blogs", Url = "http://localhost:8082"},
new DocumentStore {Identifier = "Posts #1", Url = "http://localhost:8083"},
new DocumentStore {Identifier = "Posts #2", Url = "http://localhost:8084"},
new DocumentStore {Identifier = "Posts #3", Url = "http://localhost:8085"}
};
var shardStrategy = new ShardStrategy
{
ShardAccessStrategy =new ParallelShardAccessStrategy(),
ShardSelectionStrategy = new BlogShardSelectionStrategy(3),
ShardResolutionStrategy = new BlogShardResolutionStrategy(3),
};
var documentStore = new ShardedDocumentStore(shardStrategy, shards);
documentStore.Initialize();
using(var session = documentStore.OpenSession())
{
var user = new User { Name = "ayende" };
var blog = new Blog { Name = "Ayende @ Rahien" };
session.Store(user);
session.Store(blog);
// we have to save to Raven to get the generated id for the blog instance
session.SaveChanges();
var posts = new List<Post>();
for (var i = 0; i < 6; i++)
{
var post = new Post
{
BlogId = blog.Id,
UserId = user.Id,
Content = "Just a post",
Title = "Post #" + (i + 1)
};
posts.Add(post);
session.Store(post);
}
session.SaveChanges();
}
// queries
using (var session = documentStore.OpenSession())
{
session.LuceneQuery<User>().WaitForNonStaleResults().ToArray();
session.LuceneQuery<Blog>().WaitForNonStaleResults().ToArray();
session.LuceneQuery<Post>().WaitForNonStaleResults().ToArray();
}
// loading
using (var session = documentStore.OpenSession())
{
session.Load<User>("users/ayende");
session.Load<Blog>("blogs/1");
session.Load<Post>("posts/1/2");
session.Load<Post>("posts/2/2");
}
documentStore.Dispose();
foreach (var server in ravenDbServers)
{
server.Dispose();
}
}