2010-07-28 4 views
2

다른 사람이 VB.NET Linq 코드를 Visual Studio에서 원하는 방식으로 포맷하는 데 어려움을 겪고 있습니까? 어떻게 대처할 수있는 트릭이 있습니까? 나는 Visual Studio를 사용하여 "Pretty listing (reformatting) of code"의 옵션을 선택 취소 할 수 있음을 알고 있습니다. 그러나 대부분의 경우 계속 유지하는 것이 편리합니다. 그리고 다른 설정을 할 수있는 개발자 팀과 함께하는 것은 실제로 실행 가능한 솔루션이 아닙니다. 그래서 내 질문 :Visual Studio에서 VB.NET Linq 포맷 처리?

  1. Visual Studio의 코드 서식을 사용하여 싸우지 않고 VB에서 여러 줄의 Linq 문을 어떻게 처리 했습니까?
  2. VB.net에서 Linq에 대한 특별한 스타일 가이드가 있습니까? 읽을 수있는 뭔가, 그리고 Visual Studio가 악몽을 재 포맷하지 않고 좋아하는 것?

편집 - 내 원래의 질문에 내가 원하는 선명도를 없었 겠지만

. 다음은 좀 더 구체적인 예입니다.

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 
      } 

모든 것이 잘 서식이 줄 지어 있지만 서식을 borking Visual Studio에서 쿼리 결과에 대한 변경 사항 만 즉시 CTRL-Z는 중지됩니다 :이 가짜 LINQ 쿼리를 가져 가라. VS가 여러 줄로 된 Linq 형식을보고 싶어하는 표준 방법이 있다면 괜찮습니다. 그렇지 않으면 VS 형식을 다시 포맷하는 것이 의미가 없습니다. 나는 표준을 놓쳤는 지 또는 공동체 내의 다른 사람들이 이것을 어떻게 효과적으로 다루는지를보고자 노력 중이다. (BTW - 들여 쓰기에 대한 탭 대신 공백을 사용하여 해당이 문제에 재생 아닌지 확실하지..)


편집 2 - 그것을 해결

. 아래 답변을 참조하십시오.

+1

잘못된 형식이 어떤 모양인지 예를 게시 할 수 있습니까? – rossisdead

+0

Visual Studio만큼 형식을 결정하지 않는 것은 아닙니다. 나는 서식이 어떻게 생겼는지 상관하지 않고, 단지 VS가 내 다중 라인 linq를 더 이상 denting하는 것을 원하지 않는다. – mattmc3

답변

3

해결했습니다. VB에서는 들여 쓰기가 Smart입니다. 탭은 괜찮습니다. 코드의 목록은 괜찮지 만, Visual Studio가 충분히 혼자있게하려면 들여 쓰기를 Block으로 설정해야합니다. @rockinthesixstring과 @rossisdead 덕분에 rubber-ducking 나를 통해.

1

나는 확실한 가이드가 없지만 나는 확실히 선호한다. 나는 모든 것을 끝내기를 좋아한다. 여기

내가

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

은 기본적으로 내가 모든 것을 좋아 사용하는 업데이트 방법입니다 친절하고 깨끗하며 모든 "생각"을 자신의 라인에서 가졌습니다.

+0

그건 의미가 있지만, 제 질문에 대해 오해 한 것 같습니다. 첫 번째 코드 샘플을 작성해 보겠습니다. 당신은 멋지고 예쁘게 꾸며져 있습니다. 또 다른'And'를 삽입 해보십시오 (옆에 : 항상 AndAlso' !!!를 사용하십시오). VS가 당신의 멋진 정렬을 취소 할 것입니다. 그런 다음 쿼리 아래에 다른 빈 줄을 추가하면 VS에서 들여 쓰기가 다시 변경됩니다. 제 질문은 VS를 행복하게 유지하는 방법입니다. – mattmc3

관련 문제