как привязать результат словаря к объекту класса c# linq

#c# #json #asp.net-mvc #linq #asp.net-core

Вопрос:

    Dictionary<Guid, string> flexEventTriggers = RepositoryContainer.GBM.Flex.Admin_FlexTriggerEvents.AsQueryable()
               .Where(x => flexEventTriggerIds.Contains(x.RecordID)).ToDictionary(x => x.RecordID, x => x.Name);
            Dictionary<Guid, string> lookupEntities = RepositoryContainer.GBM.Flex.Admin_LookupEntities.AsQueryable()
                           .Where(x => lookupEnityIds.Contains(x.RecordID)).ToDictionary(x => x.RecordID, x => x.Name);
            Dictionary<Guid, string> documents = RepositoryContainer.IDB.Flex.Documents.AsQueryable()
                           .Where(x => DocumentRecordIds.Contains(x.RecordID)).ToDictionary(x => x.RecordID, x => x.Name);




            foreach (var log in flexEventTriggerLogsList)
            {
                if (DocumentRecordIds.Count > 0)
                {
                    foreach (var dcoumentId in DocumentRecordIds)
                    {
                        //Fetch DocumentId's, LookupEntity_RecordID,  FlexEventTrigger_RecordID from log additional data
                        flexEventTriggerLogs.Add(new FlexEventTriggerLog
                        {
                            Name = documents[documentId],
                            Event_Name = flexEventTriggers[FlexTriggerEventRecordID],
                            Action_Name = lookupEntities[Entity_RecordID],
                        });

                    }
                }
 

Как я буду присваивать данные своему объекту в цикле foreach для имени, имени события, имени действия. В настоящее время он выдает ошибку в приведенном ниже коде.

                         Name = documents[documentId],
                        Event_Name = flexEventTriggers[FlexTriggerEventRecordID],
                        Action_Name = lookupEntities[Entity_RecordID],
                  
 

Комментарии:

1. Итак, каковы детали ошибки?

Ответ №1:

Убедитесь, что у вас DocumentRecordIds есть тип List<Guid> , и свойство( Name, Event_Name, Action_Name ) должно быть типом string .

Вы также можете попробовать это:

 Name = documents.Where(p => p.Key == dcoumentId).Select(p => p.Value).FirstOrDefault();