0

当我尝试使用 SaveChanges() 将实体写入数据库时​​,调用成功(返回 1),但实际上并未写入数据库。此外,通过添加 savechanges 事件处理程序,我可以看到该项目确实通过了具有正确属性的 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 应用程序。

预先感谢您在此问题上的帮助。

4

1 回答 1

0

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

cc.SaveChanges();

没有枚举。

于 2011-07-29T22:26:34.273 回答