Linq dbml 在 SQL 版本之间可互换
我有一个使用 Linq To SQL
作为 DAL 的桌面应用程序。它访问本地SQL Express DB
。
如果我有一个具有完全相同架构(表结构)的 SQL CE DB
,我可以通过提供生成的 dbml
来重复使用它不同的连接字符串?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这篇文章Matt Manela 的关于 SQL CE 上的 LINQ To SQL 建议您可以将 SQL Server Express 连接字符串替换为 SQL Server CE 的连接字符串,而不会出现任何大问题。如果您只对表级查询感兴趣,那么听起来您会处于良好状态。
但他指出,CE 处理连接的方式与较大的 SQL Server 版本不同。
在没有亲自测试的情况下,我只想确定 LINQ To SQL 是否会使用 SQL CE 不支持的关键字或功能生成任何 TSQL 语句。
另请注意,当前版本不支持存储过程或 XML 数据类型。它使用 TSQL 的子集。
最好访问 Microsoft 的官方 .NET 3.5 SP1 LINQ To SQL for SQL Server Compact 页面。
This article on LINQ To SQL on SQL CE from Matt Manela suggests that you could replace your SQL Server Express connection string with a connection string to SQL Server CE without any large issues. If it's just table-level querying that you're interested in, it sounds like you'll be in good shape.
He points out though, that CE handles connections differently than the larger SQL Server editions.
Without having tested it myself, I'd only want to determine if LINQ To SQL would ever generate any TSQL statements using keywords or features that SQL CE didn't support.
Also note, the current release does not support stored procedures or the XML datatype. It uses a subset of TSQL.
Best to visit the official .NET 3.5 SP1 LINQ To SQL for SQL Server Compact page at Microsoft.