Ключевое слово не поддерживается: «источник данных» в структуре сущности с функцией Azure - PullRequest
0 голосов
/ 21 июня 2019

Я использую функцию Azure для triggerQueue с каркасом сущности, получая ошибку «источник данных не поддерживается» при использовании каркаса сущности. Моя строка соединения

Ниже приведен код, где я получаю ошибку

 var connString = ConfigurationManager.ConnectionStrings["ACIGPSDBConnection"].ConnectionString;
                using (var db = new ACIGPSDBConnection(connString))
                {
                    if (!string.IsNullOrWhiteSpace(myQueueItem))
                    {
                        var breadCrumbList = JsonConvert.DeserializeObject<IList<BreadCrumb>>(myQueueItem);
                        if (breadCrumbList != null && breadCrumbList.Count() > 0)
                        {

                            var activeRouteJob = from j in db.Jobs
                                                 join rj in db.RouteJobs on j.Id equals rj.JobID
                                                 where j.IsActive == true && j.EndDate > DateTime.UtcNow &&
                                                      breadCrumbList.Any(a => a.CarrierId == rj.CarrierID)
                                                 select new RouteJobDelivery
                                                 {
                                                     RouteJobId = rj.Id,
                                                     StartDate = j.StartDate,
                                                     EndDate = j.EndDate
                                                 };
 <add name="ACIGPSDBConnection"
         connectionString="metadata=res://*/ACIGPSDataContext.csdl|res://*/ACIGPSDataContext.ssdl|res://*/ACIGPSDataContext.msl;
         provider=System.Data.SqlClient;provider connection string=&quot; 
         Data source=sqlsrv-scu-dev.database.windows.net;
         initial catalog=md_ACI-dev;user id=;password=;
         MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Попробовал следующие вещи 1) попробуйте изменить имя поставщика с System.Data.EntityClient на System.Data.SqlClient 2) попытался удалить $ quot в одинарную кавычку 3) попытался удалить MultipleActiveResultSets = True 4) пробовал В лазурь Выберите Приложение-> Настройки приложения-> Новая строка подключения-> Сохранить

Редактировать: изображение кода Код ошибки CodeImage

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Я думаю, что проблема по-прежнему заключается в экранировании символов.

Если в значении connectionString есть кавычка, так как само значение заключено в кавычки. Значение в кавычке будет экранировано до & quot; .

Я предлагаю вам попробовать следующее:

  1. Попробуйте жестко закодировать эту строку подключения в код, а не получать ее из файла конфигурации, чтобы проверить, есть ли какая-либо ошибка.
  2. Если вы добились успеха на шаге 1, вы вернетесь, чтобы получить строку подключения из файла конфигурации. Но вы добавляете выход или устанавливаете точку останова, прежде чем использовать ее. Таким образом, вы можете проверить, правильно ли вы получили строку подключения.
  3. Если вы хотите получить строку подключения в настройках приложения Azure, замените & quot; на ".
0 голосов
/ 21 июня 2019

Попробуйте удалить MultipleActiveResultSets = True из строки подключения, и оно будет работать.

...