2012-01-03 108 views
0

我想为项目使用mongodb。Mongodb c#客户端模式

是的,我能够连接到它并做事。

但是,我希望能够将mongodb驱动程序包装在一个包装中,所以如果我想更改数据库,我想轻松地更改它。

存储库模式看起来像我可以与Mongodb一起使用的东西,但我不知道从哪里开始连接?我应该使用单身吗?

Mongodb docs说它是线程安全的,所以如果我通过Singleton和每个集合创建一个MongoServer和单个MongoDatabase类,我可以有一个返回集合的方法。

这是一个糟糕的设计?

什么是更好的设计?

我想使用单例创建连接到数据库的原因我不想保持每个线程创建连接,如果已经有一个持久连接。

有没有这方面的经验?

回答

1
  • 连接汇集起来,所以如果你在一个线程中完成它,这将有资格获得重用其他线程
  • 你可以做仓库模式到Collection水平。这就是它在MongoDB驱动中如何完成的
  • 反正我真的不需要这么做。您可以使用连接字符串使用MongoDatabase.Create(MongoUrl)方法。它已经在你的服务器和数据库名称方面做了抽象
+0

好吧,我不想做MongoDatabase.Create(MongoUrl)无处不在我使用它。一遍又一遍地做同样的事情的重点是什么? – DarthVader 2012-01-03 18:02:41

+1

如果您愿意,您绝对可以在应用程序某处存储对MongoDatabase的引用。没有人说你必须反复调用MongoDatabase.Create,只是它是你可用的选项之一,并且在用相同的参数调用时不会创建额外的MongoDatabase实例。 – 2012-01-04 15:12:50

+0

您也在Google网上论坛上提问,其中有更多信息:http://groups.google.com/group/mongodb-user/browse_thread/thread/821f66f7727e381d – 2012-01-04 15:13:09