Как выполнить запрос SQL с помощью Entity Framework, который возвращает анонимный набор результатов с использованием DBContext

Как я могу выполнить необработанный SQL-запрос, который возвращает анонимный тип?

Я также подписался на ссылка msdn, но я не смог найти решение для использования DbContext.

Заранее спасибо.

Я решил проблему. Сначала я преобразовал свой объект DbContext в объект ObjectContext. Затем отдых такой же, как по ссылке выше.

какой-то фрагмент кода

// convert DbContext to ObjectContext.
var objContext = new DBEntities(); // db context object
var adapter = (IObjectContextAdapter)objContext;
var objectContext = adapter.ObjectContext;

ObjectQuery<DbDataRecord> query = new ObjectQuery<DbDataRecord>(sqlQuery, objectContext);

person Rakesh Jena    schedule 04.03.2016    source источник
comment
Вместо этого используйте динамический, поскольку я прочитал из этого сообщения, что вы не можете сделать анонимный stackoverflow.com/questions/29852912/   -  person believe me    schedule 04.03.2016
comment
В предоставленной вами ссылке очень хорошо объяснено, как вызывать объект контекста и использовать его для возврата анонимных результатов, в чем именно проблема?   -  person Antoine Pelletier    schedule 04.03.2016
comment
@Антуан ты пробовал? Я пытался, и я получаю сообщение об ошибке, так как я использую объект DBContext.   -  person Rakesh Jena    schedule 05.03.2016
comment
@поверьте, мой запрос представляет собой динамическую строку и возвращает разные наборы результатов при каждом выполнении. У меня нет определенного типа, чтобы поймать набор результатов. Можете ли вы дать фрагмент кода.   -  person Rakesh Jena    schedule 05.03.2016
comment
Что за ошибка? Не могли бы вы указать это в своем вопросе с частью вашего кода, которая выдает ошибки? Может быть, это просто ваша строка подключения (но я не думаю, что это ваш случай), а также, вы пытались сделать это, как @The Anathema, я всегда делаю так же, как он .. так что у меня никогда не было этой проблемы с контекстом   -  person Antoine Pelletier    schedule 07.03.2016
comment
Я решил проблему. Я преобразовал свой DbContext в ObjectContext.   -  person Rakesh Jena    schedule 08.03.2016


Ответы (1)


Просто спроецируйте это.

using (var context = new DbContext())
{
    var names = context.Employees.Select(e => new { Name = e.Name });
}

Or

using (var context = new DbContext())
{
    ObjectQuery<DbDataRecord> query =
         context.Employees.Select("it.Name");

    foreach (DbDataRecord record in query)
    {
         // iterate over records
    }
}
person Frozenthia    schedule 04.03.2016