2012-01-25 2 views
0

То, что я сейчас это:Как получить граф из выражения запроса в linq?

Dim users = From users In tempTable _ 
      Distinct Select users.Item("s_userid") 
Dim usersCount As Integer = users.Count 

Но я уверен, что я не должен делать это. Я должен иметь возможность получить счет в/из первого запроса linq. Что мне не хватает?

+0

tempTable.Rows.Count? Какой тип tempTable? Является ли это вызовом entity framework/linq2sql? Вы дали нам очень мало информации для работы. (@ Keith Nicholas - согласен) – asawyer

+0

Является ли это LINQ-To-Objects или LINQ-To-SQL? –

+0

Таблица - это DataTable. Я не использую Entity Framework. Я считаю, что это будет считаться Linq-To-Objects. – dotnetN00b

ответ

2
Dim distinctUserCount = (From users In tempTable 
        Let UserID = CInt(users.Item("s_userid")) 
        Select UserID).Distinct.Count 

Другой метод будет группировать DataRows по вашей UserID-Колонка:

distinctUserCount = (From users In tempTable 
        Let UserID = CInt(users("s_userid")) 
        Group users By UserID Into Group).Count 

"родной" ADO.NET подход:

Dim view = new DataView(tempTable) 
Dim TblDistinctUsers = view.ToTable(true, "s_userid") 
distinctUserCount = TblDistinctUsers.Rows.Count 

http://msdn.microsoft.com/en-us/library/wec2b2e6%28v=vs.100%29.aspx

2
Dim userCount = (From users In tempTable _ 
      Distinct Select users.Item("s_userid")).Count 
+1

Не лучше ли «Различать» за «Выбрать»? '(От пользователей В tempTable Выберите users.Item (" s_userid ")). Distinct.Count' –