Работаете с форматированием VB.NET Linq в Visual Studio? - PullRequest
2 голосов
/ 28 июля 2010

Кто-нибудь еще борется с форматированием кода VB.NET Linq так, как он этого хочет в Visual Studio? Какие у вас есть хитрости для того, как вы справляетесь с этим? Я знаю, что Visual Studio позволяет снять флажок «Довольно перечислять (переформатировать) код», но в большинстве случаев это действительно удобный способ сохранить. И с командой разработчиков, у которых могут быть другие настройки, это не совсем жизнеспособное решение. Итак, мои вопросы:

  1. Как вы справились с форматированием многострочных операторов Linq в VB, не борясь с форматированием кода Visual Studio?
  2. Есть ли конкретное руководство по стилю для Linq в VB.NET, которое рекомендуется? Что-то, что читается, и что Visual Studio нравится без переформатирования кошмаров?

Редактировать -

Мой первоначальный вопрос, возможно, не имел ясности, которую я желал. Вот более конкретный пример. Возьмите этот поддельный запрос linq:

Dim query = From a In dc.GetTable(Of DAL.GenericTableDao)()
            Select New With {
              .ID = a.ID,
              .SomethingElse = a.SomethingElse,
              .MyOtherRecord = (
                  From dtl In dc.GetTable(Of DAL.DetailTableDao)()
                  Where dtl.ID2 = a.ID _
                  AndAlso dtl.Code = a.Code _
                  Select dtl.RecordName
              ).FirstOrDefault(),
              .LastField = a.LastField
            }

Все все красиво отформатировано и выстроено в очередь, но любые изменения в запросе приводят к тому, что Visual Studio прерывает форматирование и только немедленный CTRL-Z останавливает его. Что хорошо, если есть стандартный способ, которым VS хотел бы видеть многострочное форматирование Linq, но если нет, то попытки постоянного переформатирования VS не имеют смысла. Я пытаюсь понять, пропустил ли я какой-то стандарт или как другие в сообществе справляются с этим эффективно. (КСТАТИ - использование табуляции вместо пробелов для отступов. Не уверен, играет ли это на эту проблему или нет.)


Редактировать 2 -

Решил. Смотрите ответ ниже.

Ответы [ 2 ]

3 голосов
/ 28 июля 2010

Я решил это. У меня включен Smart отступ для VB. Вкладки в порядке, красивый список кода в порядке, но отступы должны быть установлены на Block, чтобы Visual Studio оставался в покое. Спасибо @rockinthesixstring и @rossisdead за прокачку резины мне через это.

1 голос
/ 28 июля 2010

У меня нет точного гида, но у меня определенно есть предпочтение. Я предпочитаю ставить перерыв после всего.

Вот лямбда-выражение, которое я использую в своем слое обслуживания

        Return _RegionRepository.GetRegions() _
            .Where(Function(r) (r.Region = region _
                                And r.ParentID = parentid _
                                And r.isActive)) _
            .FirstOrDefault()

Обратите внимание на подчеркивание после каждого элемента запроса

Вот метод обновления, который я использую

        Dim _user = (From u In dc.Users
            Where u.ID = user.ID
            Select u).Single

        With _user
            .About = user.About
            .BirthDate = user.BirthDate
            .Email = user.Email
            .isClosed = user.isClosed
            .isProfileComplete = user.isProfileComplete
            .RegionID = user.RegionID
            .ParentRegionID = user.ParentRegionID
            .Reputation = user.Reputation
            .UserName = user.UserName
            .WebSite = user.WebSite
        End With

        dc.SubmitChanges()

В основном мне нравится все красивое и чистое, чтобы каждая "мысль" была отдельной строкой.

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