簡體   English   中英

在Visual Studio中處理VB.NET Linq格式?

[英]Dealing with VB.NET Linq formatting in Visual Studio?

是否有人在Visual Studio中以他們希望的方式來格式化VB.NET Linq代碼? 您如何處理它有哪些技巧? 我知道Visual Studio可以讓您取消選中“代碼的漂亮列表(重新格式化)”選項,但是大多數情況下,這是一個非常方便的設置。 對於可能具有其他設置的開發人員團隊來說,這並不是一個切實可行的解決方案。 所以我的問題是:

  1. 您如何在VB中處理多行Linq語句的格式而不與Visual Studio的代碼格式作斗爭?
  2. 是否有推薦的VB.NET中針對Linq的特定樣式指南? 沒有重新格式化的噩夢,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-

解決了。 請參閱下面的答案。

我解決了 我為VB啟用了Smart縮進。 制表符很好,代碼清單很漂亮,但是縮進必須設置為Block才能使Visual Studio足夠獨立。 由於@rockinthesixstring和@rossisdead用於橡膠回避我穿過。

我沒有明確的指南,但是我絕對有偏好。 我寧願在一切之后休息一下。

這是我在服務層中使用的lambda表達式

        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()

基本上,我喜歡一切都很好且干凈的東西,並且希望每條“想法”都是獨立的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM