Добавление случайного столбца Guid в запрос Linq to Entities для получения случайных записей - PullRequest
2 голосов
/ 03 июня 2009

Я нашел несколько статей об использовании представления RandomView и функции GetNewID для получения рандомизированных записей, но они используют этот метод с Linq to SQL, который позволяет использовать функции и хранимые процессы без возвращаемого значения или скаляра возвращаемое значение Из того, что я понимаю, Stored Proc должен быть возвращен как один из объектов Entity Framework из моей сгенерированной модели. Я смог заставить это работать как объект, но не возвращал скаляр или не возвращал набор.

Что я хочу сделать, это просто добавить в мой запрос Linq столбец, который содержит недавно сгенерированный Guid, чтобы я мог упорядочивать по новым Guids и произвольно выбирать определенное количество записей. Может кто-нибудь помочь с каким-то лямбда-выражением или соединением, которое позволило бы мне это сделать? Кажется, что это должно быть что-то встроенное в EF, но я понимаю, что мы находимся на EF v1.

(укажите код на VB.net)

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

В предложении Select вашего запроса Linq вы должны иметь возможность вставить GUID следующим образом:

var result = from myRecord in myTable
    select new {
        field1 = myRecord.field1,
        field2 = myRecord.field2,
        guidField = Guid.NewGuid()
    };
2 голосов
/ 03 июня 2009

Ну, мой VB немного ржавый, но я думаю, что это сработает ...

Dim result = 
    From myRecord in myTable _   
    Select field1, _
           field2,  _
           guidField = System.Guid.NewGuid()
...