我觉得很奇怪,在Visual C#2008 Express版中,当您使用数据库资源管理器时,您的选择是:
Microsoft Access
SQL Server Compact 3.5和
SQL Server数据库文件.
但是如果使用Visual Web Developer 2008 Express,则可以连接到常规SQL Server,Oracle,ODBC等.
对于开发需要与SQL Server数据库通信的命令行或其他C#应用程序的人,您是否真的需要使用一个IDE(Visual Web Developer)和您的程序在另一个(Visual C#)中构建LINQ /数据访问代码?
这不是一个艰难的解决方法,但它似乎很奇怪.如果Microsoft想要强制您升级到Visual Studio以连接到SQL Server,为什么它们会在其中一个免费IDE中包含该功能而不包含其他IDE?我觉得我可能会遗漏一些东西(比如在Visual C#中如何做到这一切).
您应该能够选择SQL Server数据库文件选项以获取正确类型的数据库( system.data.SqlClient
提供程序),然后手动更正连接字符串以指向您的数据库.
我认为这些数据库选择背后的原因可能是这样的:
如果您使用的是Express Edition,而您没有使用Visual Web Developer,那么您可能正在构建一个桌面程序.
如果你正在构建一个桌面程序,并且你正在使用快速版,那么你可能是一个业余爱好者或uISV-er在家工作而不是为公司进行开发.
如果您不是为公司开发,那么您的应用程序可能是最终用户,而您的数据存储可能正在本地计算机上运行.
您真的不应该将服务器级数据库部署到最终用户桌面.一个进程分贝如SQL Server精简或MS Access是更合适的.
但是,这种逻辑并不完全成立.即使这四个点中的每一个在90%的时间都是真的,当你应用它们全部四个时它只适用于约65%的观众,这意味着高达35%的快递市场可能合法地想要谈话到服务器级数据库,这是一个重要的组.所以,简化(贪婪)版本:
真正的数据库服务器(以及运行它的硬件)需要花费很多钱.如果您可以访问它,您应该至少能够负担视觉工作室的标准版本.
解决方法:
在Visual Web Developer Express中打开您的解决方案.它不会加载解决方案中的一些项目但是没关系.
在数据库资源管理器中建立从SQL Server到所需数据库的新连接.
添加一个新的类库项目.
添加LINQ to SQL Classes项并将其链接到您的数据库.
关闭解决方案.
在Visual C#Express中打开解决方案.
现在,您有一个LINQ to SQL类库,它链接到Visual C#Express中的SQL Server数据库.
更新
该解决方案适用于Visual Studio Express 2010.