ASP.NET MVC - 数据库的替代方案

7
我考虑将这个问题分成几个部分,但我认为把它作为一个大问题更好。以下是问题的详细内容。:-)
警告:这个问题很深入。 :-)
我已经使用ASP.NET一段时间了。几天前,在Pluralsight上观看了一门MVC课程后,我决定尝试一下。开发非常惊人和容易,特别是使用Entity Framework 4.1。在寻找部署选项时,我发现了AppHarbor。不幸的是,我遇到了一些问题。问题在于,我不能仅通过git提交来移植我的数据库。问题是,我从未真正处理过数据库-它们总是以自动方式工作。我非常害怕连接字符串等内容。我设法在AppHarbor上设置了一个数据库,用于ASP.NET Membership(我仍需要弄清楚如何复制数据和模式,但我会解决的 :-)),但我对于用于存储博客文章和评论的Entity Framework SQL Server Compact数据库该怎么办毫无头绪。问题:
  1. "MVC/EntityFramwork/Whatever-Is-Automagically-Working-Behind-The-Scenes"没有启动新数据库或其他内容,导致无法正常工作。
  2. AppHarbor仅允许使用1个数据库(免费版)。

可能的解决方案?

  1. 合并数据库。我不知道如何做到这一点,也不知道如何保持EntityFramework的自动化,使其正常工作。
  2. 采用非数据库解决方案进行帖子/评论。我意识到数据库更加高效,因为在文字文件和访问它的程序之间有一种接口,所以你不需要文件锁定等等。那么最好的替代方案是什么?

我的问题

如何处理这种情况?不仅仅是这种特殊情况,而是“垃圾-我讨厌数据库”的普遍情况?

回答方式:

  1. 建议我学习数据库:好的,但请提供一些好的资源。
  2. 提供一个非数据库的替代方案:太棒了。
  3. 解释如何在AppHarbor上使所有工作正常(但更普遍地说,任何部署服务器):理想的。我甚至可能设立赏金来奖励它。

非常感谢您的帮助;我意识到这是一个深入的问题,所获得的声誉可能不值得。如果需要提供更多信息,请告诉我。


1
给投票关闭者:如果您能够评论并解释一下我的问题有什么问题,那就太好了。我想知道我哪里做错了。 :-) - Thomas Shields
读起来像是一篇博客文章,而不是一个实际的问题。 - George Stocker
@George 我只是想为我的问题提供一些合适的背景信息。我认为我已经很好地分离出了实际的问题,而且我不明白这怎么不符合常见问题解答...但如果你有任何改进建议,那就太好了。 :) - Thomas Shields
3个回答

4
我建议你不要使用EF并且不要使用MVC3生成大量的脚手架代码,这样做与众不同。简化你的应用程序并真正了解正在发生的事情。这样你就能够调试和添加功能。
尝试使用Massive构建一个MVC3应用程序来处理你现有的数据库。非常简单和易于理解。当你看到它有多么容易时,你会克服你的数据库恐惧症。

在这里,你的创意真是独具匠心。虽然我可能不会去做这件事(主要是因为我懒),但我可能会回来看看,我很感激你试图消除我的数据库恐惧症。 :-) - Thomas Shields

2

您可以考虑使用文档数据库,例如Raven DB


谢谢,这看起来很有趣。我会去了解一下的。 - Thomas Shields
@Thomas Shields:是的,我也属于“讨厌数据库”的那一类人,而Raven是我更愿意处理的。如果你想看看Oren Eini最近创建的RacoonBlog博客引擎,可以去看看他是如何使用它的。 - ataddeini
文档数据库的警告是,如果您没有先进行一次拉取,在进行 git push 操作时,可能会擦除上传到 AppHarbor 的数据。 - MarkKGreenway
@Hurricanepkt 好的,谢谢提醒。@ataddeini 很好,谢谢。 - Thomas Shields

0

通过 Code First,您只需关注对象,数据库将在幕后自动工作。一旦您完成了相当简单的步骤,即指定要连接的数据库,就可以享受这种好处。 - MarkKGreenway
谢谢,但这已经是我正在做的事情。这并没有完全回答我的问题(如果你注意到了,我列出了三种可能的回答方式)...我确实喜欢直接连接到AppHarbor数据库的想法,我会查看那个链接并回复你。 - Thomas Shields

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接