EntityFramework Core returns wrong data when I use Oracle provider (Oracle.EntityFrameworkCore)

229 Views Asked by At

I use ef core (v.5) with oracle.EntityFrameworkCore (v.3 or v.5, whatever) as provider for Oracle (v.19). When I call .ToList() it should return all records in a table, but there are some mistakes. Let's check the code:

using var ctx = new MyContext(optionsWithConnectionString);
var targetElementsInMemory = ctx.TargetTable.ToList();
var targetElementsDbSet = ctx.TargetTable;
_ = targetElementsInMemory.Count == targetElementsDbSet.Count(); // <- true
string stringForChecking = "some string";
_ = targetElementsInMemory.Any(x => x.TextColumnt == someString); // <- false
_ = targetElementsDbSet.Any(x => x.TextColumnt == someString); // <- true (it should be true, because it exists in database)
_ = targetElementsInMemory.GroupBy(x => x.AnyProperty).Select(x => x.Count()).OrderByDescending().First(); // <- 200
_ = targetElementsDbSet.GroupBy(x => x.AnyProperty).Select(x => x.Count()).OrderByDescending().First(); // <- 100 This is true

Actually, I don't know a reason of the problem. But I see, that some element was overridden during materialization.

Has someone faced such a problem?

0

There are 0 best solutions below