【问题标题】:ASP.NET MVC3 and MongoDBASP.NET MVC3 和 MongoDB
【发布时间】:2023-03-12 14:29:01
【问题描述】:

我想使用 ASP.NET MVC3 和 MongoDB 构建一个新的 Web 应用程序。我在网上看到了很多示例,甚至自己构建了一些工作代码,但我想知道我应该如何设置我的应用程序。在使用实体框架的 MVC 示例中,它们将所有内容都放在 Models 文件夹中。我想我会做同样的事情,但我应该把我的查询等放在哪里。我应该把它们抽象到一个更好的位置。我对制作 C# 应用程序和 .NET 世界有点陌生,所以我还不清楚一些“方法”。另外,每次我需要它时创建数据库对象(我告诉它 mongo 的服务器地址)是否会对性能产生影响?我可以只连接一次然后通过那个对象说话吗?每次我执行该操作时它真的会重新连接吗?

谢谢!

【问题讨论】:

标签: c# asp.net asp.net-mvc-3 architecture mongodb


【解决方案1】:

首先,不要在 ASP.NET MVC 视图中直接使用您的域对象(您应该使用 Entity Framework 保存到 RDBMS 或保存到 MongoDB)!改用视图模型。然后,您将在 ASP.NET MVC 项目中拥有 Models 文件夹,并为您的域提供单独的项目。

我以前没有使用过 MongoDB,但我认为每个 http 请求都有数据库对象的最佳方式。 Here is 讨论 stackoverflow 和 here is 来自 10gen 的关于他们的 C# 驱动程序的视频。

【讨论】:

    【解决方案2】:

    通常,在您的模型中,您有一个代表您的域的对象模型。

    对于 MongoDB,这不会改变。模型中的对象仍然具有属性和行为。

    将会改变的是,您将存储一个对象图,而不是将每个对象存储在关系模型的表中。假设您有一张发票。您将存储发票,发票的所有行作为一条记录。就是这样,没有比这更复杂的了。

    【讨论】:

    • 我自己没用过MongoDB,但对面向文档的数据库有点熟悉。您可能想使用 JSON 库来序列化您的对象,但我不确定,这取决于 MongoDB 如何与 .NET 集成。
    • MongoDB 与 .NET 完美集成。有一个来自 10gen 本身(由 MongoDB 制造)的官方驱动程序负责处理您的对象与 BSON 之间的序列化。
    猜你喜欢
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多