【问题标题】:Linq-to-SQL (dbml) with Local database cache (C#+VS2010)带有本地数据库缓存的 Linq-to-SQL (dbml) (C#+VS2010)
【发布时间】:2013-07-28 06:31:50
【问题描述】:

我正在开发一个 WPF 应用程序,它可以远程连接 MS SQL2008 数据库。 该应用程序通过 Linq-to-SQL 与数据库通信。很方便。

但是,由于数据库服务器速度较慢,我正在尝试使用本地数据库缓存。

“VS2010 > 添加项目 > 本地数据库缓存”向导可能是一个解决方案,但它使用 DataSet 和 SQL Compact(*.sdf)。

我发现 Linq-To-SQL 无法从 SQL COMPACT 版本生成类! (当我拖动表格时,会弹出错误并显示“不支持的数据提供者”)

那么,是否有任何解决方案可以将 Linq-to-SQL 与本地数据库缓存一起使用?

或者有没有使用 Linq-to-SQL 玩的数据库同步方法?

【问题讨论】:

  • pietschsoft.com/post/2009/01/…stackoverflow.com/questions/9226180/… 可能会有所帮助 - SqlMetal 是解决方案的一部分
  • 你最好检查一下为什么数据库服务器这么慢。也许您遇到了 Linq2sql n+1 查询问题?你分析过 sql 吗?
  • @Pleun:它正在远程连接,所以它可能是很多东西。可能是数据库的问题,可能是网络延迟,或许多其他问题。
  • 好吧,在我看来,您正在寻找解决方案,然后才知道是什么导致了您的问题。

标签: c# visual-studio-2010 linq-to-sql sync


【解决方案1】:

如果您仍想采用 sql 紧凑方式,Lightspeed 是一个支持各种数据源的 linq-to-sql 提供程序。它包括 mssql compact。

http://www.mindscapehq.com/products/lightspeed

免费版本对于大多数项目来说已经足够了,有 8 个模型/类的限制。

我以前用它作为 MySql 和 Sql Compact 的 linq 提供程序,它很棒。

您可以在此处查看它支持的所有内容以及它与其他现有系统的比较:

http://www.mindscapehq.com/products/lightspeed/comparing-lightspeed

【讨论】:

  • 我将其标记为足以应用于我的解决方案的答案。谢谢
【解决方案2】:

本地数据库缓存向导仅支持客户端的 SQL Ce。如果您在客户端有 SQL Express/SQL Server,您仍然可以使用 Sync Framework。

查看以下使用 Sync Framework 的示例/教程:

Synchronizing SQL Server and SQL Express

Database Sync:SQL Server and SQL Express 2-Tier

不管它是否提到了 SQLExpress,代码中引用的 SQLSyncProvider 应该适用于 SQL Express、SQL Server 和 SQL Azure

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多