实体框架SaveChanges()不会写入数据库

时间:2011-07-29 22:02:18

标签: entity-framework savechanges

当我尝试使用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应用程序。

提前感谢您对此事的帮助。

1 个答案:

答案 0 :(得分:0)

不确定但是您的SaveOptions枚举可能是问题所在。试着打电话

cc.SaveChanges();

没有枚举。