Проблемы с конверсией в Union и Option Strict на - PullRequest
2 голосов
/ 20 мая 2011

У меня проблема с UNION для LINQ to SQL

У меня есть запрос LINQ

Dim dc As New ContainerDB.DataClassesDataContext()
    Dim test = (From container In dc.GetTable(Of tbl_container)() Where container.pkContainerID = iPkContainerID).Union( _
                    From containerHist In dc.GetTable(Of tbl_containerHIST)() Where containerHist.pkContainerID = iPkContainerID)

Я всегда получаю неявную ошибку преобразования

System.Linq.IQueryable (Из ContainerDB.tbl_containerHIST) в System.Collections.Generic.IEnumerable (Из ContainerDB.tbl_container).

Что не так в этом запросе? Чего мне не хватает?

Заранее спасибо

1 Ответ

1 голос
/ 20 мая 2011

Попробуйте поставить Option Infer On.Это позволит использовать вывод типов, который вы, похоже, делаете здесь:

Dim test =

РЕДАКТИРОВАТЬ

Также вам необходимо использовать анонимные типы: , поэтому можно сравнить tbl_container и tbl_containerHIST:

Dim test = (From container In dc.GetTable(Of tbl_container)() 
            Where container.pkContainerID = iPkContainerID 
            Select New With{ ... }).Union( _
            From containerHist In dc.GetTable(Of tbl_containerHIST)() 
            Where containerHist.pkContainerID = iPkContainerID 
            Select New With{ ... })
...