Есть ли какой-то параметр в модели сущности ado.net, который приводит к сбою функции toList ()? - PullRequest
0 голосов
/ 24 февраля 2012

Я использую модель сущности ado.net для подключения к базе данных SQL Server 2005.Я использую Linq-to-Entities, чтобы скопировать данные в список, где я делаю с ним другие вещи.Модель сущности была построена путем импорта представления из базы данных.Во всяком случае, я написал запрос linq, и он фактически возвращает все 23 уникальные строки.К сожалению, однако, если он сталкивается с какими-то данными и не знает, что с ними делать (например, если в строке есть знак фунта или амперсанд), он возвращает объекты из других мест данных.В большинстве случаев это происходит со строками, в которых есть необычные символы (амперсанды и знаки фунта), но также и для обычной строки.У кого-нибудь есть мысли?

   IQueryable<LenGIS_PlanningSUPvw> supQuery = from sup in accelaContext.LenGIS_PlanningSUPvw where sup.SUPClass == selectType select sup;
    List<LenGIS_PlanningSUPvw> theList = supQuery.ToList<LenGIS_PlanningSUPvw>();

    for (int i = 0; i <= theList.Count - 1; i++) {
        LenGIS_PlanningSUPvw sup = theList.ElementAt(i);
        System.Diagnostics.Debug.WriteLine(@"the project name: " + sup.ProjectName.ToString());
        System.Diagnostics.Debug.WriteLine(@"the project id: " + sup.ProjectID.ToString());
        System.Diagnostics.Debug.WriteLine(@"the index in the list: " + i.ToString());
        System.Diagnostics.Debug.WriteLine(@"*********************"); 
    }

дает вывод, который выглядит следующим образом:

the project name: proj1
the project id: SU93-06-PERM
the index in the list: 0
____________________________
the project name: proj2
the project id: SU97-09-PERM
the index in the list: 1
____________________________
the project name: proj1
the project id: SU93-06-PERM
the index in the list: 2
____________________________
the project name: proj3
the project id: SU04-13
the index in the list: 3
____________________________
the project name: proj4
the project id: SU04-19
the index in the list: 4
____________________________
the project name: proj3
the project id: SU04-13
the index in the list: 5
____________________________
the project name: proj3
the project id: SU04-13
the index in the list: 6
____________________________

, хотя на самом деле имя и идентификатор проекта должны быть (и в базе данных SQL Server,is) unique.

Кроме того, я только что проверил, и он тоже делает это из IQueryable (то есть, не имеет значения, используете ли вы .toList <> () или нет).

Еще одна вещь: это не облажается, если вы используете традиционный ado.net для запроса и возврата данных.

...