Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу / 6 сообщений из 6, страница 1 из 1
19.07.2017, 17:45
    #39491775
Wizard2007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу
Здравствуйте, использую Vs 2012 и EF 6.1
Есть таблица на MS SQL 2008
tbl_test
Id int
Code sql_variant
Name varchar(32)

EF не может импортировать в сущности поля типа sql_variant . Я создал в отдельной базе таблицу
tbl_test
Id int
Code varchar(32)
Name varchar(32)

При попытке выполнить запрос на получения списка строк начала выдаваться ошибка
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу "System.String"

В данных которые содержаться в поле Code есть как целочисленные значения так и пустые строки.

Решить вопрос получилось только путем выполнения явного запроса к базе и получения его результатов в список. При помощи команды SqlQuery .
Можно ли решить данную проблему без явного выполнения запроса , а настройкой поля сущности или какими либо другими средствами EF . «Зашивать» в код запрос не хочется.


В мире где каждый второй гений было бы страшно жить, поэтому я живу без страха.
...
Рейтинг: 0 / 0
20.07.2017, 16:31
    #39492499
Lelouch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу
...
Рейтинг: 0 / 0
20.07.2017, 17:00
    #39492532
Wizard2007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу
Lelouch,

гугл несомненно мудр только хотелось бы решать этот порос без ручной правки XML моедили, и что бы можно было потом просто из можели ергать новые сущности , не боясь что старые правки перетрутся после обновления модели из базы.

Код в котором вызывается SQL хотя бы в другом файле лежит , а не там же где и класс модели или сама модель. Обновлюсь из базы и не затрону свои "костыли".
...
Рейтинг: 0 / 0
20.07.2017, 17:09
    #39492540
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу
...
Рейтинг: 0 / 0
21.07.2017, 11:52
    #39492887
Wizard2007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу
hVostt,

если такой запрос
Код: sql
1.
Select id, cast(code as varchar(max)) as code , name from tbl_test



подставить через функцию SqlQuery и выбрать в список сущности , то все работает отлично.
через Fluent API не понятно как вклинится в этот процесс , и у меня, в отличии от примеров, DB First
...
Рейтинг: 0 / 0
21.07.2017, 18:20
    #39493118
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу
Wizard2007подставить через функцию SqlQuery и выбрать в список сущности , то все работает отлично.
через Fluent API не понятно как вклинится в этот процесс , и у меня, в отличии от примеров, DB First

Никакой маппинг не будет добавлять CAST к SQL-запросу.
Хочешь ручные SQL и приведения типов там, и прочие штуковины, бери другой ORM, например, Dapper.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Указана недопустимая операция приведения от материализованного типа "System.Int32" к типу / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]