В Azure у меня есть база данных Sismos, на которую нацелена моя служба WCF. Я создал копию этой базы данных в Azure:
CREATE DATABASE sismos_cfe AS COPY OF Sismos;
Это было связано с тем, что исходная база данных была предназначена только для тестирования и будет использоваться для других целей, а эта новая будет выполнять всю работу для этого сервера WCF.
В моей службе WCF я изменил следующую строку в файле Web.config:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;
provider=System.Data.SqlClient;provider connection string="data source=*******.database.windows.net;
initial catalog=Sismos;persist security info=True;user id=*******;password=*****;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
С этим:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;
provider=System.Data.SqlClient;provider connection string="data source=******.database.windows.net;
initial catalog=sismos_cfe;persist security info=True;user id=*****;password=******;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
И эта строка в моем файле app.cofig:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;
provider=System.Data.SqlClient;provider connection string="data source=******.database.windows.net;
initial catalog=Sismos;persist security info=True;user id=****;password=*****;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
С этим:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;provider=System.Data.SqlClient;
provider connection string="data source=******.database.windows.net;
initial catalog=sismos_cfe;persist security info=True;user id=****;password=*****;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
Как видите, я заменил только значение свойства initial catalog
, вместо того, чтобы указывать на Sismos, теперь оно должно указывать на cfe_sismos.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь получить доступ к одной из моих конечных точек, которая занимается удалением записи в базе данных, в базе данных вообще не происходит никаких изменений. С операциями выбора записей или редактирования/вставки записи проблем нет. Со значением свойства initial catalog
для Sismos нет проблем ни с одной из конечных точек, теоретически любой доступ к базе данных должен быть направлен на базу данных cfe_sismos.
Разве мне было недостаточно заменить значение свойства initial catalog
? Любая помощь будет оценена.
ИЗМЕНИТЬ
Я только что заметил, что есть также проблемы и странное поведение при редактировании записи, например, если у меня есть запись в моей таблице Users и я редактирую Last_Name, изменение не будет отражено, когда я проверяю свою базу данных на Azure, но если Я вызываю конечную точку, которая возвращает пользователей, изменение будет присутствовать, я дал некоторое время, чтобы увидеть, была ли какая-то задержка, препятствующая отображению новейших значений в Azure, но она не показала никаких изменений. Как я могу вносить изменения в базу данных без отображения этих изменений в реальной базе данных? Если я попытаюсь вставить новую запись в таблицу, запись будет отображаться без проблем.
Таким образом, через мои конечные точки в моей службе WCF, если я вставлю что-то, оно будет показано в Azure, если я что-то отредактирую, оно не будет отображаться в Azure (но изменение будет доступно при вызове соответствующей конечной точки), и если Я хочу удалить что-то, что не будет отображаться в Azure, а изменение не будет отражено при вызове конечной точки.
Если база данных в Azure не получает никаких изменений, то откуда я могу получить всю информацию? Как будто где-то существует кешированная база данных, я действительно не понимаю, почему это происходит.
Я действительно смущен этим странным поведением, поэтому я надеюсь, что кто-то может мне помочь. Заранее спасибо.