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

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

不过,这个应用程序的数据库要求并不是那么好,所以我很好奇在 App_Data 中使用 MDF 文件是否是一个可行的解决方案。否则,看来我将不得不手动编写 sql 查询代码,我想不惜一切代价避免这种情况。

有帮助吗?

解决方案 3

我很早就完成了引发这个问题的项目,但最近我有另一个项目需要非常小的数据,所以我花了更多时间对此进行试验。

我原以为 Sql Server Express 需要许可费用才能部署,但事实并非如此。根据微软的网站,您可以自由使用它,但有一定的限制:

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

Sql Server Compact 对于 Web 应用程序来说不是一个好主意,因为它需要破解才能使其工作,而且它并不是为 Web 所需的并发访问而构建的。但是,如果您的应用程序能够适应 Sql Server Express 的适度限制,那么它就可以很好地工作。由于它像其较大的兄弟姐妹一样使用常规 T-SQL,因此您可以将 Linq to SQL 与它一起使用。

我听到了 Linq to Sql 支持现在位于 Mono 主干中 对于 2.6 版本,因此 L2S 与 Sql Server 的紧密耦合在不久的将来可能会成为一个有争议的问题。我要么最终移植我的代码以在我选择的数据库上使用 Mono 的高级 Linq to Sql 实现,要么继续 完全是另一条路线 (自从我上次尝试以来,SubSonic 已经有了突飞猛进的进步)。但目前,Sql Server Express 对于非常小的数据库驱动应用程序来说是一个有效的选择。

其他提示

查看 Microsoft SQL Server Compact Edition。我相信您可以使用 MDF 文件而无需运行服务器。所有代码都在进程中运行。我相信它有一些限制,但它可能对你有用,而且我认为它是免费的。

据我所知,仅当 SQL Server Express 安装在该计算机上时,您才可以直接附加到 MDF(称为“用户实例”,而不是将 MDF 附加到“服务器实例”)。因此,装有 MySql 的计算机还必须运行 SQL Server Express。

您更有可能将 Access 数据库放在 App_Data 中。如果您使用的是 MSSQL MDF 文件,那么您肯定仍然需要 MSSQL 或 MSSQL-Express。

然而,你的问题令人困惑。您似乎在交换数据访问、ORM 和实际数据库。您可以将 SubSonic 与 MySQL 结合使用,但不能将 LINQ to SQL 与非 MS 数据库或 MS Access 结合使用。

SQL Server Express 和“完整”SQL Server 之间的少数区别之一是自动附加到 MDF 文件的能力 - Microsoft 称之为“xcopy部署".

SQL Server Express 是免费的(就像啤酒一样),因此除非您没有安装服务器的管理员权限,否则这应该可以正常工作。

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

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

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

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

linq to sql 可以用吗?

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top