SaveChanges() を使用してデータベースにエンティティを書き込もうとすると、呼び出しは成功します (1 が返されます) が、実際にはデータベースに書き込まれません。さらに、savingchanges イベント ハンドラーを追加することで、アイテムが実際に正しいプロパティで保存イベントを通過することを確認できます (具体的には、1 つのオブジェクトの状態が変化し、それが私が送信した新しいエンティティです)。データベースのあとがきを読むと、新しいデータ行はありません。エラーやスローされた例外はありません...
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
私は同様の記事をレビューしましたが、ほとんどの記事には 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 を使用しており、これは Web アプリケーションではなく Windows アプリケーションです。
この件についてご協力いただきありがとうございます。