2012-10-19 29 views
5

是否有某种方法可以在VB.NET中的LINQ中插入内联代码注释?在VB.NET中嵌入LINQ评论

请参阅线2以下为其中一个行内注释希望

Dim Jobs = (From X In DB.Jobs_Select(SearchStr, RequiresFilter) 
    Where X.JobStatusID < 2 -- **** INSERT INLINE COMMENT HERE **** 
    Order By 
     X.JobPriorityID Descending, 
     If(X.TargetDate, Date.MaxValue), 
     X.NeedsLit Descending, 
     X.HasOldArtRequests Descending, 
     X.HasOldLicRequests Descending 
    ) 

这是SQL代码的琐碎和坦率地说,作为SP的变得复杂非常有用的一个例子。能够在LINQ to SQL中执行相同的跨开发人员通信会很好。

更新

这是您的测试条件。

Dim L As New List(Of KeyValuePair(Of Integer, Integer)) 

Dim a = (From X In L 
      Where X.Key > 5 'test comment 
      Order By X.Value) 
+2

它不适用于'''吗? –

+0

不,15通过在该位置插入撇号来编译错误 –

+0

@BrianWebster:适用于较轻的查询。你能更新一些我们可以粘贴到VS来测试的问题吗? – Neolisk

回答

7

好的人,这里是官方的答案 - 在VB中不可能。 Proof

在VB中真的很烦人,你不能添加内联注释到 多行LINQ语句!

和更多信息:

的坏消息是,这不会是微不足道的实施。 关于单行和注释的限制内置于当前的 VB分析器中,并且级别太低。这需要完全重写 VB解析器。

好消息是我们已经开始了这样的重写(代号为 “Roslyn” - 已经有几篇文章和谈到它)。这是 还有一段路要走,我们并没有对这个阶段的 什么时候做出承诺。

- 卢西恩Wischik,VB语言PM

+0

好找,谢谢Neo –

+1

我发现太tim了。在3分钟前将它编辑成Neo的答案。最终不想让我想学,但它是很好的信息。 –

+0

@BrianWebster:不客气! Hope Roslyn在.NET语言之间带来了一些平等。 – Neolisk

0

如果

Where X.JobStatusID < 2 ' **** INSERT INLINE COMMENT HERE **** 

不工作,那么它是不可能的。

+0

这在VS2010中不起作用。它只在LINQ语句结束后放置,但这就是为什么我要问内联注释 –

+1

哇。没想到从VB那里。 – Alex

+0

@亚历克斯:是的,我也没有。 – Neolisk

1

VB.NET 14引入,使内部注释(link)的能力。

您可以在隐式行继续,初始化表达式内以及LINQ表达式之间放置注释。