2013-12-04 2 views
-2

Привет, я застрял с возвратом результата linq в виде списка. Я пытаюсь преобразовать, но не смог вернуться в список. Ниже мой код. Пожалуйста помоги. БлагодаряРезультат возврата Linq как список

Public Function GetConfigList(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config) 
    Dim Data = From p In Db.TT_GENERAL_CONFIGURATION _ 
       Select p 

    If Data IsNot Nothing Then 
     ConvertGeneralConfig(Data) 
    Else 
     Return Nothing 
    End If 
End Function 

Private Function ConvertGeneralConfig(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config) 

     Dim pConfig As New Config 
     pConfig.ConfigID = aConfig.INTERNAL_NUM 
     pConfig.ConfigType = aConfig.CONFIG_TYPE 
     pConfig.ConfigName = aConfig.CONFIG_NAME 
     pConfig.ConfigValue = aConfig.CONFIG_VALUE 

     Return pConfig 
    End Function 
+2

В чем проблема? Из внешнего вида вашего кода это либо то, что вы возвращаете один элемент 'Config' из' ConvertGeneralConfig', либо ваша переменная 'Data' будет результатом запроса и, следовательно, несовместима с вашей сигнатурой метода. Но так как ваш код не компилируется как есть, трудно сказать ... –

ответ

0

Если вы только ожидаете одного результата - использовать First() или FirstOrDefault()

Dim Data = (From p In Db.TT_GENERAL_CONFIGURATION _ 
      Select p) 
      .FirstOrDefault(); 

ваш Data теперь только содержит первый элемент результата. Если ни один не найден, Data ничего.

UPDATE

Если вы хотите, чтобы ваша функция возвращает список, то вы должны создать список, и вернуть его:

Private Function ConvertGeneralConfig(ByVal aConfig As TT_GENERAL_CONFIGURATION) As List(Of Config) 

     Dim pConfig As New Config 
     pConfig.ConfigID = aConfig.INTERNAL_NUM 
     pConfig.ConfigType = aConfig.CONFIG_TYPE 
     pConfig.ConfigName = aConfig.CONFIG_NAME 
     pConfig.ConfigValue = aConfig.CONFIG_VALUE 

     Dim lst As New List(Of Config) 'Creates a list 
     lst.Add(pConfig) ' add the object to the list 
     Return lst ' returns the list 


    End Function 
+0

@ user3051461 Помогает ли это вам? –

+0

Thx для вашего ответа. Что мне делать, если я хочу ожидать большего, чем один результат первой функции выше? затем перейдите ко второй функции для преобразования. – user3051461

0

Похоже, вы можете захотеть использовать

If Data IsNot Nothing Then 
    Return ConvertGeneralConfig(Data) 
Else 
    Return Nothing 
End If 
Смежные вопросы