我使用它的向导在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}
答案 0 :(得分:0)
在context.SubmitChanges();上设置断点。并在VS的即时窗口中,执行:
context.GetChangeSet();
有一个insert属性,它应该有一条记录。这将有助于判断它是否排队插入。
HTH。
答案 1 :(得分:0)
如果构造一个不带参数的DataContext
,它将从App.Config或Web.Config文件中检索其连接字符串。打开适用的那个,并验证它是否指向同一个数据库。