Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Difference between Dates / Entity Framework Core 3.1

1495799May 30 2020 — edited Jul 21 2020

Hello,

I have an exception when I try to get the difference between two dates (in Days) with the new Oracle.EntityFrameworkCore 3.19.0-beta1 NuGet package :

var row = (

        from r in dbContext.Entitites

        select new { (DateTime.Now - r.DateTimeColumn).Days }

    ).FirstOrDefault();

System.InvalidCastException: 'Specified cast is not valid.'

   at Oracle.ManagedDataAccess.Client.OracleDataReader.GetDecimal(Int32 i)

   at Oracle.ManagedDataAccess.Client.OracleDataReader.GetValue(Int32 i)

   at System.Data.Common.DbDataReader.GetFieldValue[T](Int32 ordinal)

This post has been answered by 1495799 on Aug 5 2021
Jump to Answer

Comments

DrClap
Sure, that will work as long as the type in question has an accessible zero-argument constructor. So yes, in your example you could return a new ArrayList or a new HashSet. Not a new ArrayList<Thing>, though, because generics are a compile-time concept only and mean nothing at run time.

By the way it's more traditional to just pass a Class object directly, instead of a wasted object of that class:
public Class<?> method(Class<?> arg) {    
    Class<?> copy = arg.newInstance();
    return copy;
}
And to call that:
ArrayList result = method(ArrayList.class);
843793
@DrClap: shouldn't your method be:
public Object method(Class<?> arg) {    
    Object copy = arg.newInstance();
    return copy;
}
DrClap
Robert.Bossy wrote:
@DrClap: shouldn't your method be:
public Object method(Class<?> arg) {    
Object copy = arg.newInstance();
return copy;
}
Yes, you're right. Or perhaps something like
public T method(Class<? extends T> arg) {    
    T copy = arg.newInstance();
    return copy;
}
Although I have to say, this method doesn't look as useful to me as it apparently did to the OP.
1 - 3

Post Details

Added on May 30 2020
12 comments
3,411 views