Сущность Framwork SaveChanges () не записывает в базу данных - PullRequest
0 голосов
/ 30 июля 2011

Когда я пытаюсь записать объект в базу данных с помощью SaveChanges (), вызов завершается успешно (возвращает 1), но фактически не записывает в базу данных.Кроме того, добавив обработчик события savechanges, я могу видеть, что элемент действительно проходит через событие сохранения с правильными свойствами (в частности, один объект изменил состояние, и это новая сущность, которую я отправил).Когда я читаю послесловие базы данных, новых строк данных нет.Нет ошибок или выданных исключений ...

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 

У меня есть обзор похожих статей, но в большинстве из них одна строка отсутствует или неверна (или даже вышла из строя).В этом случае я вижу, что он успешно проходит через систему от начала до конца, но на самом деле он не попадает в базу данных.

Так как это было задано в другой статье, вот мое соединениеstring: 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, а не веб-приложение.

Заранее благодарю за помощь по этому вопросу.

1 Ответ

0 голосов
/ 30 июля 2011

Не уверен, но ваше перечисление SaveOptions может быть проблемой.Попробуйте просто позвонить

cc.SaveChanges();

без перечисления.

...