Linq Result в наблюдаемую коллекцию выдает исключение при разборе - PullRequest
0 голосов
/ 19 марта 2020

Я создал наблюдаемую коллекцию

 public ObservableCollection<DatagGridCollection> combine_audit_final_collection { get; set; }

, которую я пытаюсь заполнить с помощью результата linq

  var d =  (from p in Auditcollectiondata
                           from c in Finalcollectiondata
                           where c.sno == p.sno
                           select new
                            {
                                p.sno,
                                p.AuditID,
                                p.claimnumber,
                                p.QueryID,
                                p.DateWorked,
                                p.UserID,
                                p.Line,
                                p.Dos,
                                p.CPT,
                                p.Units,
                                p.amtBilled,
                                p.RecoupUnit,
                                p.reocupamts,
                                p.ScioNote,
                                p.Linelevelstatus_valuetext,
                                p.providerNote,
                                c.ID_finalstatus,
                                c.FinalStatus
                     });

Объединение работает нормально, но когда я пытаюсь вставить результаты в наблюдаемая коллекция. Я получаю ошибку приведения.

    combine_audit_final_collection = new ObservableCollection<DatagGridCollection>((ObservableCollection<DatagGridCollection>) d);

combine_audit_final_collection будет привязан к сетке данных. Хотя нет ошибки компиляции, я получаю исключение при синтаксическом анализе во время выполнения во время выполнения.

Обновление: я пытаюсь объединить две наблюдаемые коллекции, используя sno, и вставить результат в другую наблюдаемую коллекцию comb_audit_final_collection. Если мой подход неверен, пожалуйста, дайте мне знать любой другой подход.

public class DatagGridCollection
{
   public bool update { get; set; }
   public int sno { get; set; }
   public string AuditID { get; set; }
   public string claimnumber { get; set; }
   public string QueryID { get; set; }
   public DateTime DateWorked { get; set; }
   public string UserID { get; set; }
   public string Line { get; set; }
   public string Dos { get; set; }
   public string CPT { get; set; }
   public string Units { get; set; }
   public string amtBilled { get; set; }
   public string RecoupUnit { get; set; }
   public string reocupamts { get; set; }
   public string ScioNote { get; set; }
   public string Linelevelstatus_valuetext { get; set; }
   public string providerNote { get; set; }
   public int final_status_sno { get; set; }
   public string Finalstatus { get; set; }
}

1 Ответ

1 голос
/ 19 марта 2020

Вы уверены, что ваша коллекция ObservableCollection представляет собой коллекцию DataGridCollections? Является ли каждый элемент вашей коллекции DataGridCollection?

Если нет, но на самом деле это коллекция MyType, измените слово DataGridCollection ниже на MyType

В любом случае Если вы отметите в своем отладчике тип объекта d, вы заметите, что это не IEnumerable<DatagGridCollection>.

Просто измените свой код на:

select new DataGridCollection()
{
   p.sno,
   ...

Если если вы хотите обнаружить причину ошибок такого рода в будущем, я бы посоветовал вам не использовать слово var слишком часто и не делать слишком много заявлений сразу.

IEnumerable<DataGridCollection> d = ...
    Select new DataGridCollection
    {
        ...
    };

combine_audit_final_collection = new ObservableCollection<DatagGridCollection>(d);

Это будет гораздо проще найти ваши ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...