LİNQ SQL Создание нового списка с помощью Join VB.NET - PullRequest
0 голосов
/ 08 марта 2019

Я хотел бы получить item_order и item_id из ITEM_DEF и из ITEM_SYT p4 столбцы. Также item_id s будет таким же. А затем отсортировать его в порядке списка по возрастанию. Таким образом, новый список будет содержать 3 столбца: item_id , item_order и p4 .

РЕДАКТИРОВАТЬ: Мне просто нужно посмотреть, как я должен объявить список.

Здесь у меня есть пример, который хорошо работает:

Dim ItemSytList As List(Of VLibrary.LINQ.ITEM_SYT) = New List(Of VLibrary.LINQ.ITEM_SYT)

ItemSytList = (From itemSyt As VLibrary.LINQ.ITEM_SYT In Context.ITEM_SYTs _
    Join itemDef As VLibrary.LINQ.ITEM_DEF In Context.ITEM_DEFs On itemSyt.item_id Equals itemDef.item_id _
    Where itemSyt.p1.ToUpper = "BDDK".ToUpper And itemSyt.p2.ToUpper = TableName.ToUpper _
    And itemDef.template_id = TemplateId And If(itemDef.item_close_date.HasValue, itemDef.item_close_date, StartDate) >= StartDate _
    And If(itemDef.item_open_date.HasValue, itemDef.item_open_date, EndDate) <= EndDate Select itemSyt).ToList

Этот код обеспечивает сохранение столбцов ITEM_SYT как детей.

1 Ответ

0 голосов
/ 08 марта 2019

Что вам нужно сделать, это использовать анонимный тип. (По возможности используйте неявную типизацию с помощью LINQ)

Dim ItemSytList =
    From itemSyt As VLibrary.LINQ.ITEM_SYT In context.ITEM_SYTs
    Join itemDef As VLibrary.LINQ.ITEM_DEF In context.ITEM_DEFs On itemSyt.item_id Equals itemDef.item_id
    Where itemSyt.p1.ToUpper = "BDDK".ToUpper And itemSyt.p2.ToUpper = TableName.ToUpper _
        And itemDef.template_id = TemplateId And If(itemDef.item_close_date.HasValue, itemDef.item_close_date, StartDate) >= StartDate _
        And If(itemDef.item_open_date.HasValue, itemDef.item_open_date, EndDate) <= EndDate
    Select New With {
        .item_order = itemDef.item_order,
        .item_id = itemDef.item_id,
        .p4 = itemSyt.p4}

Вы можете получить доступ к таким результатам, как это

Dim firstP4 = ItemSytList.OrderBy(Function(i) i.item_order).First().p4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...