Мы обнаружили, что таблица содержит только два десятичных знака, и мы хотим сэкономить больше места на сервере SQL.

Введение

Для SQL Server мы должны определить точность для десятичного типа. Например, decimal(10, 3) означает 7 целых разрядов и 3 десятичных разряда.

Однако точность сопоставления кода C# с SQL Server фиксируется до десятичного числа (18, 2), когда мы используем Entity Framework Code First.

Решение довольно простое.

Решение

Есть 2 метода решения этой проблемы.

1. Установите точность с помощью modelBuilder

Первый способ — установить точность с помощью modelBuilder.

2. Напишите индивидуальное соглашение

Недостаток первого метода решения этой проблемы заключается в том, что вы должны помнить об изменении OnModelCreating(). Альтернативный способ — создать индивидуальное соглашение.

  1. Создайте соглашение, которое наследуется от PrimitivePropertyAttributeConfigurationConvention. Это может помочь нам настроить свойство из ConventionPrimitivePropertyConfiguration.

2. Создайте настраиваемый атрибут, который наследует атрибут. Это тип входа в PrimitivePropertyAttributeConfigurationConvention.

3. Укажите Entity Framework использовать наше соглашение. Добавьте его в коллекцию соглашений в OnModelCreating.

4. Украсьте нашу модель, используя это соглашение.

[DecimalPrecision(10, 3)]
public decimal Longitude { get; set; }

использованная литература

Резюме

Спасибо за вашего пациента. Я Шон. Я работаю инженером-программистом.

Эта статья — моя заметка. Пожалуйста, не стесняйтесь дать мне совет, если какие-либо ошибки. Я с нетерпением жду ваших отзывов.

Похлопайте, если эта статья поможет вам. Спасибо.

Другие темы

Вы также можете подписаться на мою страницу в Facebook.



похожие темы

Как использовать двустороннюю привязку в Knout.js и ReactJS?



Узнайте, как использовать SignalR для создания приложения для чата



Мое отражение «Эффективного SQL»:







Службы APM и ведения журналов:





ИТ и сеть:



База данных:



Тестирование программного обеспечения:



Отладка:





DevOps: