Модель с неправильными типами свойств - PullRequest
0 голосов
/ 24 ноября 2018

Я новичок в Entity Framework.Я начал с первого подхода к базе данных, который создал мои классы, соответствующие выбранным таблицам.Я использую WPF .К сожалению, возникла проблема, когда EF6 отображал классы.Назначенный тип для поля: byte , в то время как в некоторых случаях значение превышает байтовые ограничения.Итак, я хочу заменить его на int или double.Как изменить типы полей модели без изменений, внесенных в используемую базу данных?

namespace DataChrome{
  public partial class REGISTRY_MEST{
    public byte MEST { get; set; } //Wrong typed field 
    public string MESTNAME { get; set; }
    public Nullable<byte> IDSTRAT { get; set; }
    public Nullable<int> MESTOLD { get; set; }
  }

}

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Итак, уделив 7 часов этой проблеме, я нашел правильное решение.Все, что вам нужно, это просто установить правила отображения пользователей в файле appconfig.Для более подробной информации: посетите эту страницу .

0 голосов
/ 24 ноября 2018

Изменение типа должно быть возможным путем редактирования модели edmx: щелкните свойство MEST класса внутри модели edmx, затем установите соответствующий тип в окне свойств и сохраните модель.

Youрискуя этим, рискуете сохранить слишком большое значение для столбца, если вы просто измените тип таким способом.Вы заметили, что вы используете Oracle в качестве базовой БД, поэтому вполне возможно, что EF сгенерировал «неправильный» тип для этого свойства.

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

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