我将把我的网络应用程序移动到MongoDB,并且我试图了解在我的C#代码中使用MongoDB C#驱动程序的“正确方法”。
我来自MS SQL世界,我在处理SQL Server时只使用存储过程,原因如下:
SQL代码与C#代码完全分开
轻松设置SQL访问安全性(在存储过程级别执行)
SQL逻辑与C#逻辑完全分开。
出于同样的原因,我从未使用过EF或LinqToSQL。
在推出袖子并开始代码迁移之前,我正在尝试理解以下内容:
我是否需要使用某种包装器(我在中间层和低级ADO.NET调用存储过程之间使用自制的OR包装器;包装器创建内部调用SP的C#函数)
我是否应该在存储过程的leu中使用MongoDB的js服务器端方法 - 再次,将sql逻辑与c#代码逻辑或shoudl分开我将所有逻辑移动到C#并只对MongoDB进行简单的插入/更新
正确编程我的应用程序以与MongoDB一起使用的任何其他建议
答案 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文档之间的映射。