Mysql
 sql >> база данни >  >> RDS >> Mysql

Работа с MySQL Zero Date с EF Core

Хората може да твърдят, че това е по-подходящо за коментар, но по принцип е твърде дълго за това.

И:

Ще трябва да ми помогнете малко, тъй като нямам работеща система под ръка, така че правя това от върха на главата си. (и малко бързам)

Първо, започнете с некартографирано свойство:

[NotMapped]
public DateTime ExpiryDate { get; set; }

Това свойство не е картографирано. Това може да доведе до някои грешки, свързани с това, че базата данни не съответства на модела, но можем да преодолеем това. Това свойство няма да се попълва автоматично при запитване на данните. Така че ние се нуждаем от начин сами да се справим с това.

Например (което е лош пример, защото се нуждаем от контекста в обекта някъде ):

[NotMapped]
public DateTime? ExpiryDate 
{
    get
    {
         //of course you'll need some caching here
         var s = context.Database.SqlQuery<string>("query to select datetime as string");
         //additional logic to determine validity:
         if (s == "0000-00-00")
             return null;
         //else:
         //do the conversion
    }
 }

Основният въпрос тук; докъде искате да стигнете, за да подкрепите това в рамките на EF? Трябва ли само да го четете или да пишете, като използвате инструмента за проследяване на промените на EF и т.н.?

Има и други възможности, например за изпълнение на CAST да nvarchar в самия SQL, за да получи данните и да ги обработи допълнително.

Може би ModelBuilder разкрива някои допълнителни опции.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Често срещани въпроси и отговори за интервю за MySql за по-нови + опитни

  2. Синтаксис на SQL ALTER DATABASE – Изброен от СУБД

  3. Получавате MySQL Query Results като техен роден тип данни?

  4. PHP формуляр за вход с HTML форма

  5. Magento:Съвети за архивиране