我开始研究需要SQL Server数据库的项目。我将在c#.Net 3.5中构建一个前端应用程序,它将使用LINQ to SQL。
我需要在网络共享上托管数据库,以便一组用户都可以访问数据库,主要是为了只读。
我知道SQL Server Compact设计为在本地计算机上运行,而我的公司不愿意承担全部SQL Server的成本。
有没有办法通过SQL Server Express实现我需要做的事情?
如果是,哪些是如何设置的最佳指南?
由于
答案 0 :(得分:3)
如果您使用(免费)SQL Server Express,它将执行您所需的操作 - 但您不通过网络共享驱动器访问它 - 服务器将通过IP地址(或等效的DNS)来定位。
您的c#应用程序将与服务进行通信 - SQL Server - 不会读取数据库文件。该服务将处理与数据库的交互。只有SQL Server服务需要知道文件的实际位置 - 您的客户端计算机不会知道也不应该关心。
如果您的背景仅适用于基于文件的数据库 - 即MS Access,则需要更改一下SQL服务器工作方式的思路。
答案 1 :(得分:1)
您可以安装SQL Server Express实例并为需要访问数据库的所有用户安装SQL Management Studio Express。 Express Edition是标准SQL服务器,在使用的处理器数量,最大内存量和最大数据库大小方面存在限制。如果这些限制不打扰你,它应该适合你。
使用网络共享作为数据库存储来访问来自多个客户端的db文件是一个坏主意,因为sql server实例应始终是唯一直接访问数据库的实例,用于读写访问。配置多个SQL Server实例以访问同一个数据库可能不起作用 - 如果它可以工作,它可能会在您的数据库文件中造成破坏。