В EF (Entity Framework), что государственность, чтобы изменить тип поля между INT и SMALLINT в многократном применении? - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть два или более приложения, и я не могу обновить их за один раз

Я хочу использовать тип INT в модели в одном новом приложении с полем "Serial" с типом SMALLINT в db, и оно должно работать, когда тип в БД будет изменен на INT в функции без исключения в новом коде

Для старых приложений

public class Machine
{
    public int Id { get; set; }
    public short Serial { get; set; }
    ...
}

Для новых приложений

public class Machine
{
    public int Id { get; set; }
    public int Serial { get; set; }
    ...
}

Здесь, где может быть исключение

var machine = context.Machines.FirstOrDefault(o => o.id == id);

Когда я использую хранимые процедуры, он вводится независимо, что я делаю так же

 var serial = Convert.ToInt32(sqlDataReader["Serial"]);

1 Ответ

0 голосов
/ 17 апреля 2020

Добавить представление в базу данных с приведением к SMALLINT или INT, если вы хотите увеличить или уменьшить максимальное значение для выбранного поля

Пример:

CREATE VIEW [dbo].[view_machines]
AS
SELECT id, CAST(serial AS INT) AS serial
FROM     dbo.machines

теперь вы можете изменить в поле таблицы машин введите INT или SMALLINT в любое время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...