Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

EF6 Oracle TimeStamp &Tanggal

Saya memiliki masalah serupa dengan DATE Oracle type dan EF6.1. Solusi saya adalah menggunakan Fungsi CodeFirst library (hanya tersedia untuk EF6.1 dan yang lebih baru) dan tentukan fungsi konversi terlebih dahulu di Oracle:

create or replace FUNCTION TO_DATE_LOCAL 
(
  DATETIMETOCONVERT IN VARCHAR2 
, CONVERTFORMAT IN VARCHAR2 
) RETURN DATE AS 
BEGIN
  RETURN to_date(DATETIMETOCONVERT, CONVERTFORMAT);
END TO_DATE_LOCAL;

Dan nanti di DbContext saya:

[DbFunction("CodeFirstDatabaseSchema", "TO_DATE_LOCAL")]
public static DateTime ToDateLocal(string dateTimeToConvert, string convertFormat)
{
    // no need to provide an implementation
    throw new NotSupportedException();
}

Jadi saya bisa memaksa Entity Framework untuk menggunakan tipe DATE dalam kondisi where:

var measurement = 
  context.Measurements
    .Where(m => m.MeasuredAt == 
          PlantContext.ToDateLocal("2016.01.01 10:00:00", "YYYY.MM.DD Hh24:MI:SS"))
    .FirstOrDefault();

Hati-hati menggunakan huruf kapital untuk nama fungsi dan nama skema dengan CodeFirstFunctions jika Anda menggunakan Oracle.

Jika Anda memerlukan detail lebih lanjut, saya telah menulis posting blog tentang ini dengan contoh proyek.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengekspor Hasil Kueri ke File CSV di SQL Developer (Oracle)

  2. menggunakan nilai yang dipisahkan koma di dalam klausa IN untuk kolom NUMBER

  3. Mengapa saya tidak dapat terhubung melalui jdbc menggunakan SQLcl

  4. Bagaimana saya bisa mendapatkan karakter bernomor ganjil dalam sebuah string menggunakan SQL

  5. Menghubungkan pengembang SQL ke Oracle 12c