使用Sql Server数据库文件(mdf)构建应用程序会是一个糟糕的主意吗?

时间:2020-03-05 18:45:13  来源:igfitidea点击:

我正在开发一个辅助项目,该项目将是一个简单的Web应用程序,用于维护课程列表及其即将发布的时间表。

我真的很想在此项目中使用Linq to SQL,但是不幸的是,我正在开发的服务器环境只有MySql可用。我曾短暂涉猎过Subsonic,但这只是没有完成工作。

但是,此应用程序的数据库要求不是很好,因此我很好奇,如果在App_Data中使用MDF文件是可行的解决方案。否则,看来我将不得不手动编码要不惜一切代价避免的sql查询。

解决方案

回答

我不明白..."在App_Data中具有MDF文件"是什么意思?我们需要适当的SQL Server安装才能正常工作。我们始终可以使用免费的SQL Server Express开发应用程序,然后在完成后将数据库移至正确的SQL Server。在这里检查。

回答

我们更有可能将Access数据库放入App_Data中。如果我们使用的是MSSQL MDF文件,则肯定仍然需要MSSQL或者MSSQL-Express。

但是,问题令人困惑。我们似乎在交换数据访问,ORM和实际数据库。我们可以将SubSonic与MySQL一起使用,但不能对非MS数据库或者MS Access使用LINQ to SQL。

回答

看来我误会了如何通过.net访问mdf文件。服务器上没有可用的MS SQL Server,所以看起来我很困惑。

回答

SQL Server Express和"完整" SQL Server之间的几个区别之一是能够自动添加到MDF文件上,Microsoft称之为" xcopy部署"。

SQL Server Express是免费的(就像在啤酒中一样),因此除非我们没有安装框上的管理员权限,否则它应该可以正常工作。

回答

看一下Microsoft SQL Server Compact Edition。我相信我们可以在不运行服务器的情况下使用MDF文件。所有代码都在运行。我相信它有一些局限性,但可能对我们有用,而且我认为它是免费的。

回答

+1用于SQL Server Compact。它是免费的,并且在全职服务的意义上没有"引擎",但是我们必须部署运行时(只有两个.dll文件)。

回答

据我所知,只有在该计算机上安装了SQL Server Express时,我们才能直接将其添加到MDF(称为"用户实例",而不是将MDF添加至"服务器实例")。因此,装有MySql的计算机也必须运行SQL Server Express。

回答

+1 for SQL Server Compact. It's free and there's no 'engine' in the sense of a full-time service, but you do have to deploy a runtime (it's just two .dll files).

linq to sql可以吗?

回答

我们不能将SQL Server Compact与asp.net或者Web开发一起使用

回答

我很早就完成了提示此问题的项目,但是最近我又进行了另一个项目,但对数据的要求很小,因此我花了更多时间进行试验。

我以为Sql Server Express部署需要支付许可费用,但实际上并非如此。根据Microsoft的网站,我们可以自由使用它,但有一定的限制:

  • 最大数据库大小:4 GB
  • 使用的最大内存:1 GB
  • 使用的最大CPU数:1(完整的proc,不是核心)

Sql Server Compact对于Web应用程序不是一个好主意,因为它需要黑客才能使其正常运行,并且它并不是为我们需要Web的并发访问而构建的。但是,如果应用程序可以满足Sql Server Express的适度限制,则可以很好地运行。而且,由于它像较大的兄弟姐妹一样讲常规的T-SQL,因此我们可以将Linq应用于SQL。

我听说2.6版本的Mono中继中现在已经支持Linq to Sql,因此在不久的将来L2S与Sql Server的紧密耦合很可能是一个争论点。我或者最终将代码移植到我选择的数据库上以使用Mono的高级Linq到Sql实现,或者完全走另一条路(自上次尝试以来,SubSonic有了长足的进步)。但是目前,Sql Server Express是非常小的数据库驱动的应用程序的有效选择。