Page 1 of 1

Support for EF Core 3.1 on .NET Standard 2.0

Posted: Thu 10 Sep 2020 14:16
by KRU
Hi :)


Having looked into things, EF Core 3.0 was only built for .NET Standard 2.1 (.NET Core only), but EF Core 3.1 was then built to be supported on .NET Standard 2.0 (.NET Framework 4.6.1+).

You guys' documentation claims to support EF Core 3.1, but we are facing some odd dependency-graph issues with your NuGet packages, when we are on .NET Framework 4.7.2, using EF Core 3.1 and trying to use your latest dotConnect for Oracle NuGet packages.

In particular, your Devart.Data.Oracle.EFCore version 9.12.1064 (currently latest version on .NET Standard 2.0) has a .NET Standard 2.0 constraint on it that states:
Microsoft.EntityFrameworkCore.Relational (>= 2.2.6 && < 3.0.0)

To us, this doesn't make very much sense, since presumably when using the main package of Microsoft.EntityFrameworkCore 3.1.3 (currently latest supported version according to the dotConnect for Oracle History changelog), the ".Relational" package is enforced to be the same version.

Is it the case that we should be trying to use Microsoft.EntityFrameworkCore 3.1.3 (whatever is supported according to your change logs) but keep the ".Relational" package on the 2.2.6 version? It seems a bit weird at the very least, and we would fear the occurrence of bugs as a result of the version discrepancy, especially when it's a different major version as well.

We figured that perhaps the issue was that you only support EF Core 3.1 on .NET Standard 2.1 (even though it supports .NET Standard 2.0), but at least this page here does not seem to suggest that there are any such constraints: https://blog.devart.com/entity-framewor ... iders.html

Are we misunderstanding or missing something obvious here? :)

Re: Support for EF Core 3.1 on .NET Standard 2.0

Posted: Mon 14 Sep 2020 14:29
by Shalex
KRU wrote: Thu 10 Sep 2020 14:16we are on .NET Framework 4.7.2, using EF Core 3.1 and trying to use your latest dotConnect for Oracle NuGet packages.
KRU wrote: Thu 10 Sep 2020 14:16We figured that perhaps the issue was that you only support EF Core 3.1 on .NET Standard 2.1 (even though it supports .NET Standard 2.0), but at least this page here does not seem to suggest that there are any such constraints: https://blog.devart.com/entity-framewor ... iders.html
The page says:
"So finally we also can support Entity Framework Core 3 for Full .NET Framework too, and we have added this support to all of our ADO.NET providers for cloud apps and for major databases.
All dotConnect providers with ORM support now include a new Devart.Data.<provider>.Entity.EFCore.dll assembly for Entity Framework Core 3.1 support on Full .NET Framework. You can find it in the \Entity\EFCore3 subfolder of the provider installation folder."

By default, the provider installation folder is "C:\Program Files (x86)\Devart\dotConnect\Oracle\".

The tutorials for full .NET Framework:
* https://www.devart.com/dotconnect/oracl ... FCore.html
* https://www.devart.com/dotconnect/oracl ... First.html

Re: Support for EF Core 3.1 on .NET Standard 2.0

Posted: Wed 16 Sep 2020 06:13
by KRU
Thank you for your response :)

I see that you mention that DLLs are now included on install of the Devart dotConnect for Oracle product to support EF Core 3.1 for .NET Framework, but perhaps I should clarify that we are looking to use the NuGet package approach of using Devart, and then supplying license information via the "LicenseKey" parameter on our connection-strings.

It is when trying to set up the EF Core + Devart NuGet packages that I experienced strange version-restrictions, and which resulted in this post.

We want to use the NuGet packages instead of embedding the DLLs in our apps, in order to avoid depending on having Devart installed on build agents, etc.

Thank you for any further inputs :)

Re: Support for EF Core 3.1 on .NET Standard 2.0

Posted: Tue 22 Sep 2020 18:04
by Shalex
We are looking for a solution to provide the EF Core 3.1 .NET Standard 2.0 assemblies via NuGet as well. As a temporary workaround, please create a local NuGet with the Devart.* assemblies shipped with the provider installation.

Re: Support for EF Core 3.1 on .NET Standard 2.0

Posted: Fri 04 Dec 2020 20:47
by Shalex
dotConnect for Oracle v9.14 includes the new features:
  • Entity Framework Core 5.0 is supported
  • Entity Framework Core 3.1.10 is supported
  • The behavior is changed: EF Core 3 assemblies available via NuGet package are compiled for .NET Standard 2.0 instead of .NET Standard 2.1
  • The behavior is changed: EF Core 2 assemblies are no longer available via NuGet package but created in the provider installation folder
Refer to viewtopic.php?f=1&t=44277 and https://blog.devart.com/entity-framewor ... iders.html.

To work with EF Core 3.1.10, the Target framework of your project with the model should be one of these:
* .NET Core 2.x
* .NET Standard 2.0
* .NET Framework 4.6.1 or higher
After you downgrade the Target framework of your project, you should reload the project.