Как использовать Linq-to-sql для итерации записей БД? - PullRequest
1 голос
/ 14 апреля 2010

Я спросил у SO несколько дней назад , каков был самый простой и быстрый способ создать оболочку из недавно завершенной базы данных. Я воспользовался советом и использовал sqlmetal для создания классов linq вокруг моей базы данных.

Теперь у меня две проблемы. Во-первых, я не знаю LINQ. И, во-вторых, я был шокирован, осознав, как тяжело учиться. У меня есть книга о LINQ (Linq In Action by Manning), и она помогла некоторым, но в конце дня мне понадобится пара недель, чтобы набрать обороты, и мне нужно добиться некоторого прогресса в моем проекте сегодня.

Итак, я ищу помощь для начала работы.

Нажмите ЗДЕСЬ Чтобы увидеть мою простую схему базы данных.
Нажмите ЗДЕСЬ , чтобы увидеть класс vb, созданный для схемы.

Мои потребности просты. У меня есть консольное приложение. Основной таблицей является таблица SupplyModel. Большинство других таблиц являются дочерними таблицами таблицы SupplyModel.

Я хочу перебрать каждую из записей Модели снабжения. Я хочу получить данные для модели поставки, а затем DoStuff с данными. И мне также нужно перебирать дочерние записи для каждой модели поставки, например, NumberedInventories и DoStuff с этим.

Мне нужна помощь, чтобы сделать это в VB, а не в C #, если это возможно. Я не ищу полного решения ... если бы вы могли предоставить пару фрагментов кода, чтобы помочь мне в этом, это было бы здорово.

Спасибо за вашу помощь.

EDIT
Для записи я уже написал следующий код ...

Dim _dataContext As DataContext = New DataContext(ConnectionStrings("SupplyModelDB").ConnectionString)
Dim SMs As Table(Of Data.SupplyModels) = _dataContext.GetTable(Of Data.SupplyModels)()
Dim query = From sm In SMs Where sm.SupplyModelID = 1 Select sm

Этот код работает ... У меня есть объект запроса, и я могу использовать ObjectDumper для перечисления и вывода данных ... но я все еще не могу понять это ... потому что ObjectDumper использует отражения и другие языковые конструкции, которые я не получить Он перечисляет родительские и дочерние данные точно так же, как я хочу (когда level = 2).

ПОЖАЛУЙСТА, ПОМОГИТЕ ... Я застрял. Помогите!

Сет

1 Ответ

2 голосов
/ 14 апреля 2010

в C # это будет:

    var result = from s in _dataContent.SupplyModels where s.SupplyModelID==1 select s;
    foreach(SupplyModel item in result)
    {
       // do stuff
       foreach(SupplyModelChild child in item.SupplyModelChilds)
       {
          //do more stuff on the child
       }
    }

и версия VB.NET (из конвертера кода Telerik)

Dim result As var = From s In _dataContent.SupplyModels _
    Where s.SupplyModelID = 1 _
    Select s
For Each item As SupplyModel In result
    ' do stuff
            'do more stuff on the child
    For Each child As SupplyModelChild In item.SupplyModelChilds
    Next
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...