News

Entity Framework Core 3.0 Dev Team Struggles with LINQ in Preview 6

Entity Framework Core 3.0 Preview 6 is out, with the development team including an incomplete LINQ implementation marked by temporary limitations and intentional breaking changes.

In other words, the LINQ code is in there, but don't use it seriously yet.

LINQ (Language Integrated Query) uses C# code to query various types of data stores, providing IntelliSense, strong typing and other benefits in an alternative to SQL queries.

The main takeaway in preview 6 is that the LINQ code needed to merged with EF Core for further development to proceed, but developers shouldn't use it in any production code until it's polished up.

"In recent months, a lot of our efforts have been focused on a new LINQ implementation for EF Core 3.0," said Diego Vega, program manager for .NET Data Access, in a June 13 blog post. "Although the work isn't complete and a lot of the intended functionality hasn't been enabled, before preview 6 we reached a point in which we couldn't make more progress without integrating the new implementation into the codebase in the main branch."

Hence the following warning about intentional breaking changes and temporary limitations that will be fixed before final release:

IMPORTANT: Although as always, we want to encourage you to experiment with our preview bits in a controlled environment and to provide feedback, preview 6 has significant limitations in the LINQ implementation that we expect to affect any application that performs all but the most trivial queries. Given this, we want to explicitly recommend you against trying to update any applications you have in production to this preview.

Also released was preview 6 of Entity Framework 6.3, following on last month's preview of EF 6.3, a runtime that was separated from the old, Windows-only .NET Framework in which it was previously integrated.

As Microsoft describes:

  • Entity Framework 6 (EF6) is a tried and tested object-relational mapper (O/RM) for .NET with many years of feature development and stabilization.
  • Entity Framework (EF) Core is a lightweight, extensible, open source and cross-platform version of the popular Entity Framework data access technology.

New functionality introduced in EF 6.3 Preview 6 since the previous release include polishing up the use of System.Data.SqlClient ("it's no longer necessary to register SqlClient as a workaround before you start using EF") and infrastructure updates that now see EF 6 tests passing on .NET Core.

New functionality in EF Core 3.0 Preview 6 includes a switch to Microsoft.Data.SqlClient ("The EF Core provider for SQL Server now uses the new package to connect to SQL Server databases.") and DbContext scaffolding improvements.

Going forward in a series of monthly previews before GA release time, Vega promised more LINQ work for EF Core 3.0.

"For upcoming previews and the rest of the EF Core 3.0 release, our main focus will be on restoring and improving the query functionality using our new LINQ implementation," he said.

"We are also working to enable more aspects of the experience you would expect from using EF 6.3 on .NET Core. For example, we are making additional changes to simplify working when an application .config file isn't present, enabling embedding metadata from an EDMX into the compilation output on .NET Core, and reimplementing the EF migration commands in a way that is compatible with .NET Core."

Microsoft, which earlier released the sixth previews for .NET Core 3.0 and ASP.NET Core 3.0, is aiming for general availability of the new offerings in September.

After that, the plan is to drop the "Core" designations and just unify everything under a new .NET 5 moniker late next year.

.NET data developers can get EF Core 3.0 Preview 6 (titled "Microsoft.EntityFrameworkCore.SqlServer") and Entity Framework 6.3 Preview 6 via NuGet.

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus

Featured

  • Devs Demand Visual Studio 2022 Ditch Old .NET Framework Dependencies

    Developers commenting on a Microsoft post about performance improvements in the upcoming .NET 8 demanded the company end Visual Studio 2022's dependency on the old .NET Framework.

  • Microsoft Remakes Azure Quantum Dev Kit with Rust, 'and It Runs in the Browser!'

    "The' tl;dr' is that we rewrote it (mostly) in Rust which compiles to WebAssembly for VS Code or the web, and to native binaries for Python."

  • GitHub Copilot Chat Beta Opens Up for Everybody

    GitHub Copilot Chat has taken another step toward general availability, as GitHub announced a beta offering previously accessible only by team/business customers is now available to individuals.

  • Tools and Libraries for Building Cloud-Ready Apps in .NET

    Creating any kind of software application is difficult enough, but in the cloud things only get harder when complexities like microservices, distributed teams and so on are thrown into the mix.

Subscribe on YouTube