使用MongoDB(通过C#驱动程序)进行CRUD的首选方法是什么?

时间:2011-05-04 21:40:16

标签: c# asp.net mongodb

我将把我的网络应用程序移动到MongoDB,并且我试图了解在我的C#代码中使用MongoDB C#驱动程序的“正确方法”。

我来自MS SQL世界,我在处理SQL Server时只使用存储过程,原因如下:

  1. SQL代码与C#代码完全分开

  2. 轻松设置SQL访问安全性(在存储过程级别执行)

  3. SQL逻辑与C#逻辑完全分开。

  4. 出于同样的原因,我从未使用过EF或LinqToSQL。

    在推出袖子并开始代码迁移之前,我正在尝试理解以下内容:

    1. 我是否需要使用某种包装器(我在中间层和低级ADO.NET调用存储过程之间使用自制的OR包装器;包装器创建内部调用SP的C#函数)

    2. 我是否应该在存储过程的leu中使用MongoDB的js服务器端方法 - 再次,将sql逻辑与c#代码逻辑或shoudl分开我将所有逻辑移动到C#并只对MongoDB进行简单的插入/更新

    3. 正确编程我的应用程序以与MongoDB一起使用的任何其他建议

1 个答案:

答案 0 :(得分:4)

使用MongoDB的C#驱动程序处理CRUD操作的常规方法是使用MongoCollection的Insert,Find,Update和Remove方法。还有一个Save方法,它为新文档调用Insert,为现有文档调用Update。

如果您希望在相当低的级别工作,文档本身可以是BsonDocument的实例,或者如果您希望为您的域模型创建类,则可以是您自己的C#类的实例。 C#驱动程序可以处理与BSON文档之间的C#类映射。

使用MongoDB,您很少使用任何Javascript服务器端,因此实际上不需要与SQL存储过程等效的任何东西。你只需用C#做一切。

您可能决定创建一个数据访问层,但它会比您用于SQL Server的任何东西都要薄,因为C#驱动程序处理对象和BSON文档之间的映射。