diff --git a/entity-framework/core/extensions/index.md b/entity-framework/core/extensions/index.md index d5ddc219f2..fbc4b9c17f 100644 --- a/entity-framework/core/extensions/index.md +++ b/entity-framework/core/extensions/index.md @@ -125,12 +125,6 @@ Provides a wrapper around [SQL Server Express LocalDB](/sql/database-engine/conf [GitHub repository](https://github.com/SimonCropp/LocalDb) | [NuGet](https://www.nuget.org/packages/EfLocalDb) -### EfFluentValidation - -Adds [FluentValidation](https://fluentvalidation.net) support to Entity Framework. For EF Core: 3, 5. - -[GitHub repository](https://github.com/SimonCropp/EfFluentValidation) | [NuGet](https://www.nuget.org/packages/EfFluentValidation) - ### EFCore.TemporalSupport An implementation of temporal support. For EF Core: 2. diff --git a/entity-framework/core/modeling/keyless-entity-types.md b/entity-framework/core/modeling/keyless-entity-types.md index 84b9c6c77a..31ff5cca7d 100644 --- a/entity-framework/core/modeling/keyless-entity-types.md +++ b/entity-framework/core/modeling/keyless-entity-types.md @@ -64,7 +64,7 @@ Mapping a keyless entity type to a database object is achieved using the `ToTabl The following example shows how to use keyless entity types to query a database view. > [!TIP] -> You can view this article's [sample](https://github.com/dotnet/EntityFramework.Docs/tree/main/samples/core/KeylessEntityTypes) on GitHub. +> You can view this article's [sample](https://github.com/dotnet/EntityFramework.Docs/tree/main/samples/core/Modeling/KeylessEntityTypes) on GitHub. First, we define a simple Blog and Post model: diff --git a/entity-framework/core/providers/index.md b/entity-framework/core/providers/index.md index d10d89c460..ca27f3b12c 100644 --- a/entity-framework/core/providers/index.md +++ b/entity-framework/core/providers/index.md @@ -32,7 +32,7 @@ Entity Framework Core can access many different databases through plug-in librar | [Devart.Data.Oracle.EFCore](https://www.nuget.org/packages/Devart.Data.Oracle.EFCore/) | Oracle DB 9.2.0.4 onwards | [DevArt](https://www.devart.com/) | Paid | 5.0 | [docs](https://www.devart.com/dotconnect/oracle/docs/) | | [Devart.Data.PostgreSql.EFCore](https://www.nuget.org/packages/Devart.Data.PostgreSql.EFCore/) | PostgreSQL 8.0 onwards | [DevArt](https://www.devart.com/) | Paid | 5.0 | [docs](https://www.devart.com/dotconnect/postgresql/docs/) | | [Devart.Data.SQLite.EFCore](https://www.nuget.org/packages/Devart.Data.SQLite.EFCore/) | SQLite 3 onwards | [DevArt](https://www.devart.com/) | Paid | 5.0 | [docs](https://www.devart.com/dotconnect/sqlite/docs/) | -| [FirebirdSql.EntityFrameworkCore.Firebird](https://www.nuget.org/packages/FirebirdSql.EntityFrameworkCore.Firebird/) | Firebird 3.0 onwards | [Jiří Činčura](https://github.com/cincuranet) | | 5.0 | [docs](https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/blob/master/Provider/docs/entity-framework-core.md) | +| [FirebirdSql.EntityFrameworkCore.Firebird](https://www.nuget.org/packages/FirebirdSql.EntityFrameworkCore.Firebird/) | Firebird 3.0 onwards | [Jiří Činčura](https://github.com/cincuranet) | | 5.0 | [docs](https://github.com/FirebirdSQL/NETProvider/blob/master/docs/entity-framework-core.md) | | [IBM.EntityFrameworkCore](https://www.nuget.org/packages/IBM.EntityFrameworkCore) | Db2, Informix | [IBM](https://ibm.com) | Paid, Windows | 5.0 | [getting started](https://community.ibm.com/community/user/hybriddatamanagement/blogs/michelle-betbadal1/2020/04/29/getting-started-with-ibm-net-provider-for-net-core) | | [IBM.EntityFrameworkCore-lnx](https://www.nuget.org/packages/IBM.EntityFrameworkCore-lnx) | Db2, Informix | [IBM](https://ibm.com) | Paid, Linux | 5.0 | [getting started](https://community.ibm.com/community/user/hybriddatamanagement/blogs/michelle-betbadal1/2020/04/29/getting-started-with-ibm-net-provider-for-net-core) | | [IBM.EntityFrameworkCore-osx](https://www.nuget.org/packages/IBM.EntityFrameworkCore-osx) | Db2, Informix | [IBM](https://ibm.com) | Paid, macOS | 5.0 | [getting started](https://community.ibm.com/community/user/hybriddatamanagement/blogs/michelle-betbadal1/2020/04/29/getting-started-with-ibm-net-provider-for-net-core) | diff --git a/entity-framework/core/what-is-new/ef-core-2.0/upgrade.md b/entity-framework/core/what-is-new/ef-core-2.0/upgrade.md index ca3f1bd025..78398a47a7 100644 --- a/entity-framework/core/what-is-new/ef-core-2.0/upgrade.md +++ b/entity-framework/core/what-is-new/ef-core-2.0/upgrade.md @@ -93,7 +93,7 @@ The event IDs for messages sent to an [ILogger](/dotnet/api/microsoft.extensions Logger categories have also changed. There is now a well-known set of categories accessed through [DbLoggerCategory](https://github.com/dotnet/efcore/blob/rel/2.0.0/src/EFCore/DbLoggerCategory.cs). -[DiagnosticSource](https://github.com/dotnet/corefx/blob/main/src/System.Diagnostics.DiagnosticSource/src/DiagnosticSourceUsersGuide.md) events now use the same event ID names as the corresponding `ILogger` messages. The event payloads are all nominal types derived from [EventData](/dotnet/api/microsoft.entityframeworkcore.diagnostics.eventdata). +`DiagnosticSource` events now use the same event ID names as the corresponding `ILogger` messages. The event payloads are all nominal types derived from [EventData](/dotnet/api/microsoft.entityframeworkcore.diagnostics.eventdata). Event IDs, payload types, and categories are documented in the [CoreEventId](/dotnet/api/microsoft.entityframeworkcore.diagnostics.coreeventid) and the [RelationalEventId](/dotnet/api/microsoft.entityframeworkcore.diagnostics.relationaleventid) classes. @@ -124,7 +124,7 @@ Note that this change only applies to APIs/metadata that is defined for _all_ re ## Don’t take control of the EF service provider -EF Core uses an internal `IServiceProvider` (a dependency injection container) for its internal implementation. Applications should allow EF Core to create and manage this provider except in special cases. Strongly consider removing any calls to `UseInternalServiceProvider`. If an application does need to call `UseInternalServiceProvider`, then please consider [filing an issue](https://github.com/dotnet/efcore/Issues) so we can investigate other ways to handle your scenario. +EF Core uses an internal `IServiceProvider` (a dependency injection container) for its internal implementation. Applications should allow EF Core to create and manage this provider except in special cases. Strongly consider removing any calls to `UseInternalServiceProvider`. If an application does need to call `UseInternalServiceProvider`, then please consider [filing an issue](https://github.com/dotnet/efcore/issues) so we can investigate other ways to handle your scenario. Calling `AddEntityFramework`, `AddEntityFrameworkSqlServer`, etc. is not required by application code unless `UseInternalServiceProvider` is also called. Remove any existing calls to `AddEntityFramework` or `AddEntityFrameworkSqlServer`, etc. `AddDbContext` should still be used in the same way as before. diff --git a/entity-framework/ef6/fundamentals/async.md b/entity-framework/ef6/fundamentals/async.md index 39c7ede5bc..09e1c2c897 100644 --- a/entity-framework/ef6/fundamentals/async.md +++ b/entity-framework/ef6/fundamentals/async.md @@ -25,7 +25,6 @@ Here are some more resources to learn about async: - [Brandon Bray’s overview of async/await in .NET 4.5](https://devblogs.microsoft.com/dotnet/async-in-4-5-worth-the-await/) - [Asynchronous Programming](https://msdn.microsoft.com/library/hh191443.aspx) pages in the MSDN Library -- [How to Build ASP.NET Web Applications Using Async](https://channel9.msdn.com/events/teched/northamerica/2013/dev-b337) (includes a demo of increased server throughput) ## Create the model diff --git a/entity-framework/ef6/fundamentals/performance/perf-whitepaper.md b/entity-framework/ef6/fundamentals/performance/perf-whitepaper.md index ec7861ad2e..fa23366ced 100644 --- a/entity-framework/ef6/fundamentals/performance/perf-whitepaper.md +++ b/entity-framework/ef6/fundamentals/performance/perf-whitepaper.md @@ -1244,7 +1244,7 @@ When choosing to use EDMX versus Code First, it’s important to know that the f If you are having performance issues with the Entity Framework, you can use a profiler like the one built into Visual Studio to see where your application is spending its time. This is the tool we used to generate the pie charts in the “Exploring the Performance of the ADO.NET Entity Framework - Part 1” blog post ( \) that show where Entity Framework spends its time during cold and warm queries. -The "Profiling Entity Framework using the Visual Studio 2010 Profiler" blog post written by the Data and Modeling Customer Advisory Team shows a real-world example of how they used the profiler to investigate a performance problem.  \. This post was written for a windows application. If you need to profile a web application the Windows Performance Recorder (WPR) and Windows Performance Analyzer (WPA) tools may work better than working from Visual Studio. WPR and WPA are part of the Windows Performance Toolkit which is included with the Windows Assessment and Deployment Kit ( [http://www.microsoft.com/download/details.aspx?id=39982](https://www.microsoft.com/download/details.aspx?id=39982)). +The "Profiling Entity Framework using the Visual Studio 2010 Profiler" blog post written by the Data and Modeling Customer Advisory Team shows a real-world example of how they used the profiler to investigate a performance problem.  \. This post was written for a windows application. If you need to profile a web application the Windows Performance Recorder (WPR) and Windows Performance Analyzer (WPA) tools may work better than working from Visual Studio. WPR and WPA are part of the Windows Performance Toolkit which is included with the Windows Assessment and Deployment Kit. ### 10.2 Application/Database profiling diff --git a/entity-framework/ef6/fundamentals/testing/testability-article.md b/entity-framework/ef6/fundamentals/testing/testability-article.md index 3992e4ba02..44bc94eb6d 100644 --- a/entity-framework/ef6/fundamentals/testing/testability-article.md +++ b/entity-framework/ef6/fundamentals/testing/testability-article.md @@ -955,7 +955,6 @@ In this paper we’ve demonstrated several approaches to creating testable code ### Additional Resources -- Robert C. Martin, “ [The Single Responsibility Principle](https://www.objectmentor.com/resources/articles/srp.pdf)” - Martin Fowler, [Catalog of Patterns](https://www.martinfowler.com/eaaCatalog/index.html) from *Patterns of Enterprise Application Architecture* - Griffin Caprio, “ [Dependency Injection](https://msdn.microsoft.com/magazine/cc163739.aspx)” - Data Programmability Blog, “ [Walkthrough: Test Driven Development with the Entity Framework 4.0](/archive/blogs/adonet/walkthrough-test-driven-development-with-the-entity-framework-4-0)”. diff --git a/entity-framework/ef6/modeling/designer/advanced/edmx/csdl-spec.md b/entity-framework/ef6/modeling/designer/advanced/edmx/csdl-spec.md index d43198f2e2..0330275926 100644 --- a/entity-framework/ef6/modeling/designer/advanced/edmx/csdl-spec.md +++ b/entity-framework/ef6/modeling/designer/advanced/edmx/csdl-spec.md @@ -18,9 +18,9 @@ Versions of CSDL are differentiated by XML namespaces. | CSDL Version | XML Namespace | |:-------------|:---------------------------------------------| -| CSDL v1 | https://schemas.microsoft.com/ado/2006/04/edm | -| CSDL v2 | https://schemas.microsoft.com/ado/2008/09/edm | -| CSDL v3 | https://schemas.microsoft.com/ado/2009/11/edm | +| CSDL v1 | `https://schemas.microsoft.com/ado/2006/04/edm` | +| CSDL v2 | `https://schemas.microsoft.com/ado/2008/09/edm` | +| CSDL v3 | `https://schemas.microsoft.com/ado/2009/11/edm` |   ## Association Element (CSDL) @@ -1660,7 +1660,7 @@ A **Schema** element may contain zero or one Annotation elements. The **Schema** element uses the **Namespace** attribute to define the namespace for the entity type, complex type, and association objects in a conceptual model. Within a namespace, no two objects can have the same name. Namespaces can span multiple **Schema** elements and multiple .csdl files. -A conceptual model namespace is different from the XML namespace of the **Schema** element. A conceptual model namespace (as defined by the **Namespace** attribute) is a logical container for entity types, complex types, and association types. The XML namespace (indicated by the **xmlns** attribute) of a **Schema** element is the default namespace for child elements and attributes of the **Schema** element. XML namespaces of the form https://schemas.microsoft.com/ado/YYYY/MM/edm (where YYYY and MM represent a year and month respectively) are reserved for CSDL. Custom elements and attributes cannot be in namespaces that have this form. +A conceptual model namespace is different from the XML namespace of the **Schema** element. A conceptual model namespace (as defined by the **Namespace** attribute) is a logical container for entity types, complex types, and association types. The XML namespace (indicated by the **xmlns** attribute) of a **Schema** element is the default namespace for child elements and attributes of the **Schema** element. XML namespaces of the form `https://schemas.microsoft.com/ado/YYYY/MM/edm` (where YYYY and MM represent a year and month respectively) are reserved for CSDL. Custom elements and attributes cannot be in namespaces that have this form. ### Applicable Attributes diff --git a/entity-framework/ef6/modeling/designer/advanced/edmx/msl-spec.md b/entity-framework/ef6/modeling/designer/advanced/edmx/msl-spec.md index 6617069bd3..5fc4a72691 100644 --- a/entity-framework/ef6/modeling/designer/advanced/edmx/msl-spec.md +++ b/entity-framework/ef6/modeling/designer/advanced/edmx/msl-spec.md @@ -19,8 +19,8 @@ Versions of MSL are differentiated by XML namespaces. | MSL Version | XML Namespace | |:------------|:-----------------------------------------------------| | MSL v1 | urn:schemas-microsoft-com:windows:storage:mapping:CS | -| MSL v2 | https://schemas.microsoft.com/ado/2008/09/mapping/cs | -| MSL v3 | https://schemas.microsoft.com/ado/2009/11/mapping/cs | +| MSL v2 | `https://schemas.microsoft.com/ado/2008/09/mapping/cs` | +| MSL v3 | `https://schemas.microsoft.com/ado/2009/11/mapping/cs` | ## Alias Element (MSL) diff --git a/entity-framework/ef6/modeling/designer/advanced/edmx/ssdl-spec.md b/entity-framework/ef6/modeling/designer/advanced/edmx/ssdl-spec.md index 2f52135a4d..716c13e868 100644 --- a/entity-framework/ef6/modeling/designer/advanced/edmx/ssdl-spec.md +++ b/entity-framework/ef6/modeling/designer/advanced/edmx/ssdl-spec.md @@ -16,9 +16,9 @@ Versions of SSDL are differentiated by XML namespaces. | SSDL Version | XML Namespace | |:-------------|:--------------------------------------------------| -| SSDL v1 | https://schemas.microsoft.com/ado/2006/04/edm/ssdl | -| SSDL v2 | https://schemas.microsoft.com/ado/2009/02/edm/ssdl | -| SSDL v3 | https://schemas.microsoft.com/ado/2009/11/edm/ssdl | +| SSDL v1 | `https://schemas.microsoft.com/ado/2006/04/edm/ssdl` | +| SSDL v2 | `https://schemas.microsoft.com/ado/2009/02/edm/ssdl` | +| SSDL v3 | `https://schemas.microsoft.com/ado/2009/11/edm/ssdl` | ## Association Element (SSDL) @@ -897,7 +897,7 @@ The **Schema** element may contain zero or more of the following child elements: The **Schema** element uses the **Namespace** attribute to define the namespace for the entity type and association objects in a storage model. Within a namespace, no two objects can have the same name. -A storage model namespace is different from the XML namespace of the **Schema** element. A storage model namespace (as defined by the **Namespace** attribute) is a logical container for entity types and association types. The XML namespace (indicated by the **xmlns** attribute) of a **Schema** element is the default namespace for child elements and attributes of the **Schema** element. XML namespaces of the form https://schemas.microsoft.com/ado/YYYY/MM/edm/ssdl (where YYYY and MM represent a year and month respectively) are reserved for SSDL. Custom elements and attributes cannot be in namespaces that have this form. +A storage model namespace is different from the XML namespace of the **Schema** element. A storage model namespace (as defined by the **Namespace** attribute) is a logical container for entity types and association types. The XML namespace (indicated by the **xmlns** attribute) of a **Schema** element is the default namespace for child elements and attributes of the **Schema** element. XML namespaces of the form `https://schemas.microsoft.com/ado/YYYY/MM/edm/ssdl` (where YYYY and MM represent a year and month respectively) are reserved for SSDL. Custom elements and attributes cannot be in namespaces that have this form. ### Applicable Attributes diff --git a/entity-framework/ef6/resources/blogs.md b/entity-framework/ef6/resources/blogs.md index d3afcdfe97..7cd07039e5 100644 --- a/entity-framework/ef6/resources/blogs.md +++ b/entity-framework/ef6/resources/blogs.md @@ -26,4 +26,3 @@ Besides the product documentation, these blogs can be a source of useful informa ## EF Community Bloggers - [Julie Lerman](https://thedatafarm.com/blog/) -- [Shawn Wildermuth](https://wildermuth.com/Tag/%20Entity%20Framework) diff --git a/entity-framework/ef6/resources/tools.md b/entity-framework/ef6/resources/tools.md index a5090bc339..13e213a8c4 100644 --- a/entity-framework/ef6/resources/tools.md +++ b/entity-framework/ef6/resources/tools.md @@ -12,7 +12,6 @@ Entity Framework has been a popular O/RM for many years. Here are some examples - [EF Power Tools Community Edition](https://marketplace.visualstudio.com/items?itemName=ErikEJ.EntityFramework6PowerToolsCommunityEdition) - [EF Profiler](https://efprof.com) -- [ORM Profiler](https://www.ormprofiler.com) - [LINQPad](https://www.linqpad.net) - [LLBLGen Pro](https://www.llblgen.com) - [Huagati DBML/EDMX Tools](https://www.huagati.com/dbmltools) diff --git a/entity-framework/ef6/what-is-new/visual-studio.md b/entity-framework/ef6/what-is-new/visual-studio.md index bb5dc6b59e..bbcdd63b6d 100644 --- a/entity-framework/ef6/what-is-new/visual-studio.md +++ b/entity-framework/ef6/what-is-new/visual-studio.md @@ -36,7 +36,7 @@ Remember to use a verbatim string prefixed with `@` or double back-slashes "\\\\ ## Visual Studio 2013 - This version of Visual Studio includes and older version of Entity Framework tools and runtime. -It is recommended that you upgrade to Entity Framework Tools 6.1.3, using [the installer](https://www.microsoft.com/download/details.aspx?id=40762) available in the Microsoft Download Center. +It is recommended that you upgrade to Entity Framework Tools 6.1.3, using the installer. See [Past Releases](xref:ef6/what-is-new/past-releases#ef-613) for more details on these releases. - Adding Entity Framework to new projects using the upgraded EF tools will automatically add the EF 6.1.3 NuGet package. You can manually install or upgrade to any EF NuGet package available online. @@ -47,7 +47,7 @@ Remember to use a verbatim string prefixed with `@` or double back-slashes "\\\\ ## Visual Studio 2012 - This version of Visual Studio includes and older version of Entity Framework tools and runtime. -It is recommended that you upgrade to Entity Framework Tools 6.1.3, using [the installer](https://www.microsoft.com/download/details.aspx?id=40762) available in the Microsoft Download Center. +It is recommended that you upgrade to Entity Framework Tools 6.1.3, using the installer. See [Past Releases](xref:ef6/what-is-new/past-releases#ef-613) for more details on these releases. - Adding Entity Framework to new projects using the upgraded EF tools will automatically add the EF 6.1.3 NuGet package. You can manually install or upgrade to any EF NuGet package available online. diff --git a/entity-framework/efcore-and-ef6/porting/port-edmx.md b/entity-framework/efcore-and-ef6/porting/port-edmx.md index e19fb65996..fd95d7aca8 100644 --- a/entity-framework/efcore-and-ef6/porting/port-edmx.md +++ b/entity-framework/efcore-and-ef6/porting/port-edmx.md @@ -49,4 +49,4 @@ EF Core does not support the `EntityClient` provider and therefore any [EntitySQ Furthermore, there is no support for [EntityClient connection strings](xref:ef6/fundamentals/configuring/connection-strings#databasemodel-first-with-connection-string-in-appconfigwebconfig-file). -For more considerations, read the complete guide to [differences between EF6 and EF Core](/efcore-and-ef6/porting/port-detailed-cases.md). +For more considerations, read the complete guide to [differences between EF6 and EF Core](xref:efcore-and-ef6/porting/port-detailed-cases).