2013-04-22 3 views
1

Я беру текстовый файл и использую его для заполнения строкового массива (адресов), и оттуда я пытаюсь получить 2 столбца из базы данных, проблема в том, что один адрес может иметь много идентификаторов, и я пытаюсь получить последнюю назначенную (Max), а также отдельный ссылочный номер.Извлечение всей строки из базы данных .Max()

For Each item In addresses 
     Dim reportInfo = (From Reports In DB.ReportDB 
     Where Reports.Address.Contains(item) 
     Select ID = Reports.ID, 
     Ref = Reports.Ref).Max(Function(Reports) Reports.Ref) 

Это просто возвращает идентификатор и устанавливает запрос = к нему, в то время как я хочу, чтобы элементы корреспондента базы данных к этому ID.

Другая проблема заключается в том, что я получаю без элементов в последовательности ошибок, которые могут ссылаться на Ref, не всегда один, но когда я проверил значение null, он все равно дал ошибку.

О, и, видимо, .LastorDefault не поддерживается.

ответ

0

попробовать это:

For Each item In addresses 
    Dim reportInfo = (From Reports In DB.ReportDB 
    Where Reports.Address.Contains(item) 
    Orderby Reports.Ref 
    Select new with{.ID = Reports.ID, 
    .Ref = Reports.Ref}).Last() 
+0

будет работать только я получаю исключение Оператор запроса «Последний» не поддерживается. – Tim

+0

Сделал .ToArray(), а затем reportInfo.Last.ID и, похоже, работает. – Tim