2013-08-29 2 views
1

с использованием npgsql поставщика и entityframework я пытаюсь написать простую ExecuteStoreQuery так:NpgsqlProvider и ExecuteStoreQuery

var result = BusinessContextManager.Instance.ExecuteQuery(x => x.WrappedObjectContext.ExecuteStoreQuery<DataTable>("SELECT 2+2")); 

но он терпит неудачу с ошибкой «поле не найден» и трассировки стека

at Npgsql.NpgsqlRowDescription.FieldIndex(String fieldName) in ---path\Npgsql\NpgsqlRowDescription.cs:line 204 
    at Npgsql.NpgsqlDataReader.GetOrdinal(String Name) in --path\Npgsql2-master\src\Npgsql\NpgsqlDataReader.cs:line 184 
    at System.Data.Query.InternalTrees.ColumnMapFactory.TryGetColumnOrdinalFromReader(DbDataReader storeDataReader, String columnName, Int32& ordinal) 

может кто-нибудь сказать мне, что я делаю неправильно? что индекс поля и так один ...

я попытался с помощью псевдонима Select 2 + 2 в качестве результата, но все тот же ошибку

версия entiryframework - 5 npgsql версия - 2.0.12.91

ответ

1

после публикации вопроса я выяснил, что это невозможно сделать с TElement, являющимся DataTable, поэтому я создал свой собственный класс (сущность), и я возвращаю его, все работает нормально, но я все еще должен спросить, может ли это быть сделано так возвращает данные? (не знаю, некоторые хаки ..)

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