2016-08-25 3 views
0

У меня есть запрос linq, который используется для отображения списка запросов от нескольких пользователей. И Requestor может иметь многопользовательские запросы (так что сетка может иметь один и тот же Requestor несколько раз). Теперь я создаю раскрывающийся список с уникальным Requestor, который отображается в сетке. (Проблема: я не получаю отдельный список, но получаю все Requestor несколько раз). Ниже приведен запрос linq, который я не знаю. Может кто-нибудь предложить с правильным запросом linq.Запрос Linq для отображения уникального набора имен для текущего набора данных

Dim rqstQry = From x In db.Request_vws _ 
         Order By x.RequestID Descending _ 
         Select x.RequestID, 
         Descr = x.Descr, _ 
         RequestorName = String.Format("{0} {1}", x.FIRST_NAME, x.LAST_NAME), _ 
         RelatedTask = GetTaskDescr(x.WorkID, x.TaskLabel, x.TaskDescr), _ 
         RequestDescr = GetRequestDescr(x.RequestType), x.SubmitDttm, x.UpdatedDttm, _ 
         x.ChangeDttm, _ 
         x.MigrTimeStr, x.MigrApptTime, _ 
         x.Requestor Ditinct 

DataBind:

     RequestorCB1.DataSource = rqstQry    
         RequestorCB1.DataTextField = "Requestor"      RequestorCB1.DataValueField = "REquestor" 
         RequestorCB1.DataBind() 

нужно отчетливое пользователя в DropDownList

+0

https://msdn.microsoft.com/en-us/library/bb338049(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2 – Aybe

+1

Так почему бы вам не запрашивать пользователей вместо запросов? –

+0

Обновленный вопрос и ответ, можете ли вы проверить, что это был запрос, а не только пользователи – Nethra

ответ

0

Получил это, используя нижеследующий запрос.

Dim rqstQry = (From x In db.Request_vws _ 
        Order By x.RequestID Descending _ 
        Select x.RequestID, 
        Descr = x.Descr, _ 
        RequestorName = String.Format("{0} {1}", x.FIRST_NAME, x.LAST_NAME), _ 
        RelatedTask = GetTaskDescr(x.WorkID, x.TaskLabel, x.TaskDescr), _ 
        RequestDescr = GetRequestDescr(x.RequestType), x.SubmitDttm, x.UpdatedDttm, _ 
        x.ChangeDttm, _ 
        x.MigrTimeStr, x.MigrApptTime, _ 
        x.Requestor). Distinct() 


     Dim rqstQry2 = (From y In rqstQry _ 
         Select y.Requestor, y.RequestorName).Distinct() 
2

круглые скобки запроса LINQ и добавьте .Distinct()

Dim rqstQry = (From x In db.Request_vws _ 
    Order By x.user 
    Select x.user).Distinct() 

Если вы включаете запрос материал в результат, то вы не можете получить отдельных пользователей (как точки Герта Арнольда в своем комментарии). Включать только столбцы, связанные с пользователями.

Если вам по-прежнему нужна информация о запросах, вы должны ограничить эту информацию одной записью на пользователя. Вы должны использовать группу и использовать совокупность, чтобы выбрать запрос (первый, последний и т. Д.).

+1

Ermm, 'x.RequestID' ... Я не думаю, что Distinct будет иметь значение. –

+0

@oliver Я попробовал то, что вы сказали, но это не имело никакого значения. – Nethra

+0

Вы пробовали после того, как я удалил все столбцы, но «x.user». –

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