在使用SQL Server CE数据库添加数据时调用table.InsertOnSubmit()方法添加数据之后,一定要及时调用db.SubmitChanges()提交修改。否则数据不会马上更新到数据库中。
如下面的例子:
_db.CreateDatabase();
_db.ThingCycles.InsertOnSubmit(new ThingCycle { TCName = "一次", TCDesc = "无" });
_db.ThingLevels.InsertOnSubmit(new ThingLevel { TLName = "红", TLDesc = "无" });
var thing = new Thing();
thing.TName = "测试事件";
thing.TDesc = "无";
thing.TC = _db.ThingCycles.First();
thing.TL = _db.ThingLevels.First();
thing. TRemark = "无";
thing.TDatetime = DateTime.Now;
_db.Things.InsertOnSubmit(thing);
_db.SubmitChanges();
这段代码在执行thing.TC = _db.ThingCycles.First();的时候会报“Sequence contains no elements”异常。因为上面添加的ThingCycle对象未提交到数据库中,所以当前_db.ThingCycles的数据为空。
记得调用一次InsertOnSubmit()之后,就调用SubmitChanges();