+1  A: 

I don't have a definitive guide, but I definitely have a preference. I prefer to put a break after everything.

Here's a lambda expression I use in my service layer

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

Notice the underscore after every query item

Here's an update method that I use

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

Basically I like everything nice and clean and to have every "thought" on it's own line.

rockinthesixstring
That makes sense, but I think you misunderstood my question. Let's take your first code sample. You've got it formatted all nice and pretty. Try inserting another `And` (aside: always use `AndAlso`!!!) in your Linq query. VS will de-dent your lovely alignment. Then, add another blank line underneath your query and VS will change your indent again! My question is how to keep VS happy.
mattmc3
+1  A: 

I solved it. I have Smart indenting turned on for VB. Tabs are fine, pretty listing of code is fine, but indents have to be set to Block in order for Visual Studio to leave well enough alone. Thanks to @rockinthesixstring and @rossisdead for rubber-ducking me through it.

mattmc3