Мы обнаружили, что таблица содержит только два десятичных знака, и мы хотим сэкономить больше места на сервере SQL.
Введение
Для SQL Server мы должны определить точность для десятичного типа. Например, decimal(10, 3) означает 7 целых разрядов и 3 десятичных разряда.
Однако точность сопоставления кода C# с SQL Server фиксируется до десятичного числа (18, 2), когда мы используем Entity Framework Code First.
Решение довольно простое.
Решение
Есть 2 метода решения этой проблемы.
1. Установите точность с помощью modelBuilder
Первый способ — установить точность с помощью modelBuilder.
2. Напишите индивидуальное соглашение
Недостаток первого метода решения этой проблемы заключается в том, что вы должны помнить об изменении OnModelCreating(). Альтернативный способ — создать индивидуальное соглашение.
- ConventionPrimitivePropertyConfiguration предоставляет различные методы для настройки примитивных свойств типа объекта или сложного типа.
- В этом случае мы используем ConventionPrimitivePropertyConfiguration.HasPrecision.
- Мы можем установить точность десятичного числа, выполнив следующие шаги.
- Создайте соглашение, которое наследуется от PrimitivePropertyAttributeConfigurationConvention. Это может помочь нам настроить свойство из ConventionPrimitivePropertyConfiguration.
2. Создайте настраиваемый атрибут, который наследует атрибут. Это тип входа в PrimitivePropertyAttributeConfigurationConvention.
3. Укажите Entity Framework использовать наше соглашение. Добавьте его в коллекцию соглашений в OnModelCreating.
4. Украсьте нашу модель, используя это соглашение.
[DecimalPrecision(10, 3)] public decimal Longitude { get; set; }
использованная литература
- 解决 Entity Framework 6.0 decimal 类型精度问题
- Entity Framework Code First建立Decimal,並設定大小
- Установить десятичное число (16, 3) для столбца в Code First Approach в EF4.3
Резюме
Спасибо за вашего пациента. Я Шон. Я работаю инженером-программистом.
Эта статья — моя заметка. Пожалуйста, не стесняйтесь дать мне совет, если какие-либо ошибки. Я с нетерпением жду ваших отзывов.
Похлопайте, если эта статья поможет вам. Спасибо.
Другие темы
Вы также можете подписаться на мою страницу в Facebook.
похожие темы
Как использовать двустороннюю привязку в Knout.js и ReactJS?
Узнайте, как использовать SignalR для создания приложения для чата
Мое отражение «Эффективного SQL»:
Что, если мы не сможем изменить дизайн? — Мои размышления над «Эффективным SQL, часть 3
Эффективный SQL: 61 особый способ написания лучшего SQL, дали мне много советов по использованию базы данных.medium.com»
Службы APM и ведения журналов:
ИТ и сеть:
База данных:
Тестирование программного обеспечения:
Отладка:
DevOps: