Проблема сохраняемости SQL Server CE на одном ПК - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть небольшое приложение, работающее на нескольких компьютерах уже более двух лет, с файлом базы данных SQL Server CE 4 в общем каталоге. Он долгое время работал без проблем, но сейчас и на одном ПК есть проблемы с постоянством.

Вот код, о котором идет речь (это действительно старый код):

try
{
    using (var context = new ClientFlowContainer())
    {
        Calls ct = context.CallsSet.Create();
        ct.ClientId = _clientId;
        if (Code.SelectedItem is Codes codes)
            ct.Code = codes.Id;
        ct.Data = DateTime.Today;
        ct.Result = _msg + Resultado.Text;
        ct.NextCall = checkBox1.Checked ? dateTimePicker1.Value : (DateTime?) null;
        context.CallsSet.Add(ct);
        context.SaveChanges();
    }
}
catch (Exception ex)
{
    while (ex != null)
    {
        MessageBox.Show(ex.Message);
        ex = ex.InnerException;
    }
}

Нет сообщения об ошибке, поэтому исключение не выдается - все другие ПК работают нормально (и иногда после того, как какой-то другой ПК запускает этот код, этот ПК может сохраняться - но это не гарантируется)

Так, что могло вызвать это поведение? Я думаю о чем-то внешнем по отношению к моему коду, но все же я нахожу это странным, нет никакой ошибки вообще.

Есть идеи?

РЕДАКТИРОВАТЬ 1:

В соответствии с запросом, вот строка подключения:

в app.config, у меня есть:

<connectionStrings>
    <add name="ClientFlowContainer" connectionString="metadata=res://*/Data.ClientFlow.csdl|res://*/Data.MyDbFile.ssdl|res://*/Data.MyDbFile.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;data source=|DataDirectory|\MyDbFile.sdf&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

Тогда в коде я делаю:

AppDomain.CurrentDomain.SetData("DataDirectory", "\\\\SERVER_NAME\\Path\\To\\DataBase\\File");
...