LinqToSQL没有更新数据库

时间:2010-05-18 16:59:40

标签: sql-server linq-to-sql visual-studio-2010

我使用它的向导在visual studio 2010中创建了一个数据库和dbml。一切都工作正常,直到我检查表格数据(也在visual studio服务器资源管理器),没有我的更新。

using (var context = new CenasDataContext())
{
    context.Log = Console.Out;
    context.Cenas.InsertOnSubmit(new Cena() { id = 1});
    context.SubmitChanges();
}

这是我用来更新数据库的代码。此时,我的数据库有一个表,其中一个字段(PK)名为ID。

  

** INSERT INTO [dbo] .Cenas VALUES(@ p0)    - @ p0:输入Int(大小= -1; Prec = 0; Scale = 0)[1]    - 上下文:SqlProvider(Sql2008)模型:AttributedMetaModel Build:   4.0.30319.1 **

这是执行中的日志(将上下文日志打印到控制台中)。

我遇到的问题是这些更新在数据库中不是持久的。我的意思是,当我查询我的数据库(visual studio服务器资源管理器 - >新查询)时,我每次都看到该表是空的。

我使用的是SQL Server数据库文件(.mdf)。

编辑(1):立即窗口结果

context.GetChangeSet()
{Inserts: 1, Deletes: 0, Updates: 0}
    Deletes: Count = 0
    Inserts: Count = 1
    Updates: Count = 0
context.GetChangeSet().Inserts
Count = 1
    [0]: {DBTest.Cena}

2 个答案:

答案 0 :(得分:0)

在context.SubmitChanges();上设置断点。并在VS的即时窗口中,执行:

context.GetChangeSet();

有一个insert属性,它应该有一条记录。这将有助于判断它是否排队插入。

HTH。

答案 1 :(得分:0)

如果构造一个不带参数的DataContext,它将从App.Config或Web.Config文件中检索其连接字符串。打开适用的那个,并验证它是否指向同一个数据库。