当我尝试使用SaveChanges()将实体写入数据库时,调用成功(返回1),但实际上并没有写入数据库。此外,通过添加一个savingchanges事件处理程序,我能够看到该项确实通过具有正确属性的save事件(具体来说,一个对象已更改状态,它是我发送的新实体)。当我读取数据库后记时,没有新的数据行。没有错误或抛出异常...
CommunityEF.Community c = new CommunityEF.Community();
c.IdNumber = 0; //set key
c.Name = "Test";
CommunityEF.CommunitySystemContainer cc = new CommunityEF.CommunitySystemContainer();
cc.Communities.AddObject(c); // also tried "cc.AddToCommunities(c);"
int result=cc.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
//result is always 1
我已经审核了类似的文章,但大多数都有一行缺失或不正确(甚至无序)。在这种情况下,我可以看到它从头到尾成功地通过了系统,但它实际上并没有在数据库中结束。
由于在另一篇文章中提到过,这是我的连接字符串:
metadata=res://*/CommunityEF.CommunitySystem.csdl|res://*/CommunityEF.CommunitySystem.ssdl|res://*/CommunityEF.CommunitySystem.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|DataDirectory|\DB\Database1.sdf"" providerName="System.Data.EntityClient" />
此外,它应该没关系(但我知道它确实如此),但我使用的是VS2010 Express,它是一个Windows应用程序,而不是Web应用程序。
提前感谢您对此事的帮助。
答案 0 :(得分:0)
不确定但是您的SaveOptions枚举可能是问题所在。试着打电话
cc.SaveChanges();
没有枚举。