代码之家  ›  专栏  ›  技术社区  ›  Adam Lassek

使用SQLServer数据库文件(mdf)构建应用程序会是一个糟糕的想法吗?

  •  2
  • Adam Lassek  · 技术社区  · 16 年前

    我正在做一个附带的项目,它是一个简单的web应用程序,用来维护一个类列表和它们即将到来的时间表。

    我真的很想在这个项目中使用LINQtoSQL,但不幸的是,我开发的服务器环境只有MySql可用。我曾短暂涉猎过亚音速,但并没有完成任务。

    不过,这个应用程序对数据库的要求不是很高,所以我很好奇在App_数据中使用MDF文件是否是一个可行的解决方案。否则,看来我将不得不手工编写sql查询代码,我希望不惜一切代价避免这些查询。

    10 回复  |  直到 16 年前
        1
  •  11
  •   jmatthias    16 年前

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

        2
  •  2
  •   flipdoubt    16 年前

    据我所知,只有在机器上安装了SQL server Express时,才可以直接连接到MDF(称为“用户实例”,而不是将MDF连接到“服务器实例”)。因此,安装了MySql的计算机也必须运行SQLServerExpress。

        3
  •  2
  •   Adam Lassek    15 年前

    我很久以前就完成了这个引发这个问题的项目,但最近我有另一个项目附带了非常小的数据需求,所以我花了更多的时间来试验这个。

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

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

    SQLServerCompact对于web应用程序来说是一个坏主意,因为它需要一个黑客来让它工作,并且它不是为web所需的并发访问而构建的。但是,如果您的应用程序能够在SQLServerExpress的适度限制范围内运行,那么它将运行得非常好。而且,由于它像较大的同级一样使用常规的T-SQL,因此可以使用LINQtoSQL。

    我听说 Linq to Sql support is now in the Mono trunk 对于2.6版本,L2S与Sql Server的紧密耦合可能在不久的将来成为一个没有意义的问题。我要么移植代码,在我选择的数据库上使用Mono的高级Linq to Sql实现,要么继续 another route entirely (自从我上次尝试以来,亚音速已经有了突飞猛进的进步)。但就目前而言,Sql Server Express是非常小的数据库驱动应用程序的有效选择。

        4
  •  1
  •   Forgotten Semicolon adrianm    16 年前

        5
  •  1
  •   Jeremy McGee    16 年前

    xcopy deployment ".

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

        6
  •  1
  •   Joel Coehoorn    16 年前

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

        7
  •  0
  •   dguaraglia    16 年前
        8
  •  0
  •   Adam Lassek    16 年前

        9
  •  0
  •   Orion Edwards    16 年前

    但是LINQtoSQL是否可以使用它?

        10
  •  0
  •   shrek shrek    15 年前

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