LINQ - Помещение результата в словарь (Of String, Integer), где целое число должно быть 0 - PullRequest
1 голос
/ 19 сентября 2011

У меня проблема с LINQ2Entity, я хочу получить значение string из базы данных, поэтому я выбираю FProducts.Serial_number, а для завершения запроса я делаю .ToDictionary.

Проблема в том, что он говорит, что у него недостаточно параметров для преобразования ToDictionary.

Так что мне нужно что-то вроде select FProducts.Serial_number, Nothing). ToDictionary. Также FProducts.Serial_number, 0).ToDictionary не работает.

Любые рекомендации?

Sub GetStatistics(ByVal ProductNumbers As List(Of String), ByRef Passed As Integer, ByRef FailedProducts As List(Of String))
        Passed = 0
        FailedProducts = Nothing
        Dim tpDictionary As Dictionary(Of String, Integer)
        For Each productNumber As String In ProductNumbers
            Using context As New SelmaEntities
                Dim Table = (From GoodProducts In context.TestResults
                            Where (GoodProducts.Art_no = productNumber)
                            Select GoodProducts.Art_no, GoodProducts.Failed)
                tpDictionary = (From FProducts In context.TestResults
                            Where (FProducts.Art_no = productNumber And FProducts.Failed <> 0)
                            Order By FProducts.Serial_number
                            Select FProducts.Serial_number, ).ToDictionary

            End Using
        Next
    End Sub

Ответы [ 2 ]

4 голосов
/ 19 сентября 2011

ToDictionary требует лямбда-выражений в качестве параметров: один для выбора ключа словаря, один для выбора значения. Так что попробуйте:

tpDictionary = (From FProducts In context.TestResults
                 Where (FProducts.Art_no = productNumber And FProducts.Failed <> 0))
               .ToDictionary(Function(p) FProducts.Serial_number, Function(p) 0)
1 голос
/ 19 сентября 2011
var products =  from p in FProducts select new { value=serial_number,key=productid};
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach(var item in products){
  dictionary.Add(item.value, item.key);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...