2009-05-11 3 views
1

Я triying делать то же самое описано here, но в VB.NETУсловные Linq запросов в VB.NET

Я попробовал все C# преобразователей VB, но никто не похоже на работу с LINQ. Я новичок в C#, поэтому любая помощь будет оценена!

public static IQueryable<Type> HasID(this IQueryable<Type> query, long? id) { return id.HasValue ? query.Where(o => i.ID.Equals(id.Value)) : query; }

ответ

3

Попробуйте это:

Public Module MyModule 
    <Runtime.CompilerServices.Extension()> _ 
    Public Function HasID(ByVal query As IQueryable(Of Type), ByVal id As Long?) As IQueryable(Of Type) 
     Return If(id.HasValue, query.Where(Function(o) o.ID.Equals(id.Value)), query) 
    End Function 
End Module 

В VB.NET Вы должны создать модуль для создания метода расширения. Также поместите атрибут Runtime.CompilerServices.Extension и удалите статический и это из определения функции.

P.S. ненавижу VB :)

+0

Сообщите, что такое тип «Тип»? – Kamarey

0

Какой конвертер вы пробовали? Вы должны попробовать Telerik Converter. Я скопировал ваш код в свой конвертер и получил следующее:

<System.Runtime.CompilerServices.Extension> _ 
Public Shared Function HasID(query As IQueryable(Of Type), id As System.Nullable(Of Long)) As IQueryable(Of Type) 
    Return If(id.HasValue, query.Where(Function(o As) i.ID.Equals(id.Value)), query) 
End Function 



'======================================================= 
'Service provided by Telerik (www.telerik.com) 
'Conversion powered by NRefactory. 
'Built and maintained by Todd Anglin and Telerik 
'======================================================= 
+0

Первые в Google. Да не «все» на самом деле. Спасибо, что я сделал это в закладки! – 2009-05-11 13:12:08

+0

+1 для упоминания источника. – 2009-05-11 13:19:34

Смежные вопросы