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

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube