Используя дозвуковой 3, у меня есть проект со странным сценарием. У меня есть служба Windows .net, которой необходимо подключиться к основной базе данных, в которой хранятся подключения к другим серверам баз данных, а также набор таблиц для обработки автоматических SMS-сообщений. Затем у меня есть идентичные базы данных на других серверах (таблица строк подключения пуста на других базах данных), которые обрабатывают сообщения для других приложений.
Таким образом, subsonic может нормально обращаться ко всем БД, используя параметры строки подключения / имени поставщика.
public static List<SMSRequestWithResponseList> SMSRequestListGetAll(string applicationName)
{
string connStr = GetConnectionStringByApplicationName(applicationName);
List<SMSRequestWithResponseList> response = new List<SMSRequestWithResponseList>();
List<DAL.CDYNESMSRequest> lst = DAL.CDYNESMSRequest.All(connStr, providerName).ToList();
foreach (DAL.CDYNESMSRequest mitm in lst)
{
SMSRequestWithResponseList itm = new SMSRequestWithResponseList(mitm, mitm.CDYNESMSResponses.ToList(), string.Empty);
response.Add(itm);
}
return response;
}
Проблема в сохранении ... Вставка вроде работает.
DAL.CDYNESMSRequest itm = new DAL.CDYNESMSRequest(connStr, providerName).;
itm.KeyCode = KeyCode;
itm.ApplicationName = ApplicationName;
itm.BatchTransaction = BatchTransaction;
itm.AssignedDID = GetParameter("AssignedDID");
itm.PhoneNumber = PhoneNumber;
itm.MessageDetail = MessageText;
itm.MessageCancelled = false;
itm.MessageQueued = false;
itm.MessageSent = false;
itm.IsImmediate = SendImmediate;
itm.InQueue = false;
itm.ScheduledDateTime = ScheduledDateTime;
itm.CreateDT = dt;
itm.ModifiedDT = dt;
itm.Save();
Но вроде не хочет обновляться ...
DAL.CDYNESMSRequest itm = DAL.CDYNESMSRequest.SingleOrDefault(x => x.RequestID == requestID, connStr, providerName);
if (itm != null)
{
itm.MessageID = messageGUID;
itm.MessageCancelled = messageCancelled;
itm.MessageQueued = messageQueued;
itm.ReferenceID = messageReferenceID;
itm.MessageSent = messageSent;
if (messageSentDT < new DateTime(1753, 1, 1, 0, 0, 0))
itm.MessageSentDT = null;
else
itm.MessageSentDT = messageSentDT;
itm.MessageSMSError = messageSMSError;
itm.ModifiedDT = dt;
itm.Save();
}
Я вызываю, используя строку подключения из правильной базы данных, но она не обновляет запись. Если я сохраняю его неправильно, дайте мне знать. Я пытался создать нового провайдера и установить его на сохранение, но он рявкнул на меня, сказав, что у него уже есть открытое соединение. Спасибо!