LINQ-to-SQL不提交对本地数据库的更改

时间:2011-09-20 18:52:23

标签: c# linq-to-sql sql-server-ce

我正在创建的应用程序中有一个本地的SQL Server Compact数据库。我使用SqlMetal.exe工具生成了一个可用于LINQ-to-SQL目的的.dbml文件,该工具运行正常 - 我现在有了在我的应用程序中使用的表对象。

我有一个奇怪的问题。即使在我的DataContext上调用SubmitChanges()之后,数据也从未提交。但奇怪的是,在添加行之后,这些行确实出现在datacontext上的表对象中,但不出现在表中。令我震惊的是,即使停止并启动我的应用程序,这些行仍然存在于DataContext中 - 但几分钟后它们似乎消失了。

我是否正确配置了这个?在使用SqlMetal允许LINQ提交更改之后,我还需要做更多的步骤吗?

1 个答案:

答案 0 :(得分:3)

我假设您使用默认属性链接到dbml文件。这意味着,每次启动调试会话时,该文件都将被复制到您的输出目录中,只有该会话才能看到对它的更改(即“复制 - >总是”)。

如果您希望更改保持不变,请右键单击该文件 - >属性 - >从不复制。默认情况下,IDE假定您不想修改原始数据库,只需要修改副本以进行调试。