2016-09-12 3 views
0

По-видимому, одни и те же столбцы типа значений различаются по средам для одного и того же объекта базы данных (таблица) &, они отказываются обновлять общий тип - не спрашивайте, почему!Динамическое связывание свойств в EF?

Я использую Entity Framework (версия 6.1.3) вместе с Единицей работы для доступа к данным. И, как вы можете догадаться, я получаю ошибки, потому что DEV & определения базы данных QA не совпадают для одного и того же столбца.

ХОРОШИЕ НОВОСТИ:
Мы не экономим в эти конкретные таблицы - мы только запросить эти отдельные таблицы.

ОБРАЗЕЦ МОДЕЛЬ:
Очевидно, имеется больше столбцов.

public partial class Transactions 
{ 
    [Key] 
    public int TransactionId { get; set; } 

    public float Amount { get; set; } //<-- This type differs between database environments 
} 

МОЙ ВОПРОС:

  • Есть ли способ, чтобы динамически связать значение для столбца в Entity Framework?
  • Или я могу рассматривать его как динамический под капотом ... и преобразовать его в ожидаемый тип, который является постоянным для моей модели?

Оптимально - И БЫТЬ CLEAR:
Я хотел бы определить свойство конкретно, и есть Entity Framework «преобразования» из неизвестного типа & в конкретный тип - но под капотом.

Любая помощь приветствуется.

+2

Я подозреваю, что это всего лишь одна из многих проблем, с которыми вам придется столкнуться, пытаясь поддерживать разные типы с одинаковой кодовой базой. Тем не менее, вы можете попытаться определить тип EF как «string» и посмотреть, «магически» ли он преобразует различные типы источников в строковое представление. Либо это, либо параметр конфигурации, который позволяет вам выбирать между двумя различными операторами SQL, которые используются для общего типа. –

+0

Вы можете сделать класс общим и иметь несколько объектов контекста, которые определяют разные типы? – DavidG

+1

Если вы только запрашиваете его, возможно, добавьте виды с помощью прикладов и прикрытий и запросите их вместо этого? –

ответ

0

Если типы столбцов совместимы (т. Е. Все числа), вы можете иметь общий тип в классе, а затем отключить проверку модели (и миграцию). Это решение может работать на некоторых СУБД, а не на некоторых других (зависит от поставщика).

Вы можете написать представление с литым рисунком и отобразить его в своей модели (а не в таблице).

Вы можете написать прямой запрос с помощью EF (официальных документов https://msdn.microsoft.com/en-us/data/jj592907.aspx, похожих на решение Dapper с такими же преимуществами и дефектами, в вашем случае ленивая нагрузка не будет работать).

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