- 3,716,133 Users
- 2,242,960 Discussions
- 7,845,840 Comments
Forum Stats
Discussions
Categories
- 17 Data
- 362.2K Big Data Appliance
- 7 Data Science
- 1.6K Databases
- 479 General Database Discussions
- 3.7K Java and JavaScript in the Database
- 22 Multilingual Engine
- 487 MySQL Community Space
- 5 NoSQL Database
- 7.6K Oracle Database Express Edition (XE)
- 2.8K ORDS, SODA & JSON in the Database
- 417 SQLcl
- 42 SQL Developer Data Modeler
- 184.9K SQL & PL/SQL
- 21K SQL Developer
- 1.9K Development
- 3 Developer Projects
- 32 Programming Languages
- 135.1K Development Tools
- 9 DevOps
- 3K QA/Testing
- 259 Java
- 6 Java Learning Subscription
- 11 Database Connectivity
- 67 Java Community Process
- 1 Java 25
- 9 Java APIs
- 141.1K Java Development Tools
- 6 Java EE (Java Enterprise Edition)
- 153K Java Essentials
- 135 Java 8 Questions
- 86.2K Java Programming
- 270 Java Lambda MOOC
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 10 Java SE
- 13.8K Java Security
- 3 Java User Groups
- 22 JavaScript - Nashorn
- 18 Programs
- 125 LiveLabs
- 31 Workshops
- 9 Software
- 3 Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 4 Deutsche Oracle Community
- 11 Español
- 1.9K Japanese
- 2 Portuguese
Entity Framework Oracle Timestamp

We have table named T_SC_SERVICE has INSTANCE_ID column which is type Timestamp(6).
I'm using Entity Framework 6 and DB first approaches.
I'am trying to Add and Select item for this table with using LINQ.
Insert with LINQ as shown below:
Service newItem = new Service(){ InstanceId = DateTime.Now,};this.ObjectSet.Add(newItem);this.SaveChanges();
That LINQ generates SQL as below. As you can see INSTANCE_ID parameter send as DateTime as expected.
insert into "DGARSMART"."T_SC_SERVICE"("INSTANCE_ID")values (:p0)-- :p0: '29.08.2019 07:33:38' (Type = DateTime)-- Executing at 29.08.2019 07:33:38 +03:00-- Completed in 66 ms with result: 1
Here is my Problem:
SELECT with LINQ as shown below:
internal Service GetServiceByInstanceId(DateTime instanceId)
{
return this.ObjectSet.FirstOrDefault(i => i.InstanceId == instanceId);
}
That LINQ generates SQL as below. As you can see Instance_ID send as Date not DateTime. So it always return Null. This is the same entity object and same model. I could not figure out why this LINQ is sending DateTime as Type of Date instead of DateTime.
SELECT "Extent1"."INSTANCE_ID" AS "INSTANCE_ID", FROM "DGARSMART"."T_SC_SERVICE" "Extent1"WHERE (("Extent1"."INSTANCE_ID" = :p__linq__0) AND (:p__linq__0 IS NOT NULL)) AND (ROWNUM <= (1) -- p__linq__0: '29.08.2019 07:33:38' (Type = Date)-- Executing at 29.08.2019 07:34:47 +03:00-- Completed in 5 ms with result: OracleDataReader
I'am using these packages:
<package id="Oracle.ManagedDataAccess" version="12.2.1100" targetFramework="net45" /> <package id="Oracle.ManagedDataAccess.EntityFramework" version="12.2.20190115" targetFramework="net45" /> <package id="EntityFramework" version="6.0.0" targetFramework="net45" />
Answers
-
Thanks for reporting this. We have created Bug 30294734 to track and investigate this issue.