Differences between Entity Framework SSDL versions - entity-framework

According to the following URL, there are three versions of the Entity Framework Storage Schema Definition Language:
http://msdn.microsoft.com/en-us/data/jj652016.aspx
I am developing a tool that should support all of them (including the legacy versions), but unfortunately I was not able find a document that describes the differences between them.
Does anyone know such document or able to describe the differences?

There are 3 main versions of EF artifacts (i.e. CSDL, SSDL and MSL). V1 was introduced in the first version of Entity Framework shipped as part of .NET Framework 3.5 SP1. V2 was introduced in EF4 shipped with .NET Framework 4. V3 was introduced in EF5 shipped with .NET Framework 4.5. V3 will also be used by EF6 that will not be shipped as part of .NET Framework but will be a standalone release - here is the project site http://entityframework.codeplex.com. Changes to artifacts (and therefore increasing the versions) are necessary when new features are added to the Entity Framework and it's not possible to use the existing versions to implement these features. I don't have a list of what changed between V1 and V2 but you can find the list of changes between v2 and v3 here: http://msdn.microsoft.com/en-us/data/jj650889. One way to find what changed is to compare schemas for v1 artifacts with corresponding schemas for v2 artifacts. You can find the schemas in System.Data.Entity.dll - they are embedded resources or on the http://entityframework.codeplex.com by browsing the EF6 code (under src/EntityFramework/Resources/System/Data/{EntityModel|MappingSpecification}) - the schemas have not changed since EF5.

Related

Can Duende IdentityServer v6 be used in a .Net Framework Application?

We are reviewing our our applications which use IdentityServer now it has rebranded to Duende become a subscription model and have come across a forgotten application which consists of a number of .Net Framework projects, one of which references the dll's IdentityServer3 and IdentityServer3.WsFederation.
If we want to be using a supportable we need to upgrade to IdentityServer v6 but given that this is a .Net 6 application, the only route I can see to this is to upgrade all the projects in the solution to be .Net 6 also.
Is there a supported .Net Framework compatible version of IdentityServer?
If not is there a trick I am missing which means I don't have to upgrade the entire solution to .Net Core and maybe limit it to just the one project that references these two dll's?
Thanks in advance

Why was SF Stateless Web API template removed?

In the picture below we can see in the year 2018 in VS2017 there is no Stateless Web API template in Service Fabric templates in VS. Why was this removed and what are it's replacements?
Because at the time you took the first screenshot, probably using .NET SDK 2.8 or earlier and SF tools for VS 1.7 and earlier, Service Fabric and the WebApi templates were based on dot net framework only.
The releases that came after Service Fabric .NET SDK 3.0 and SF tools for VS 2.0 , like the one in the screenshot, started a migration to .net standard 2, now you can target dot net framework or dot net core using the same libraries targeting .Net Standard. For A while you had both templates available, now everything is based on core.
The main difference between the old and the new is that the previous templates you used dot net framework 4.6.2 + Owin, now you use AspNet Core with any framework compatible with the .Net Standard 2.
You might get more info from these release notes:
https://blogs.msdn.microsoft.com/azureservicefabric/2017/09/25/service-fabric-6-0-release/
https://blogs.msdn.microsoft.com/azureservicefabric/2018/01/26/service-fabric-6-1-release/

Use EF6 with ASP.NET Core

I am working a new project - and I want to do it using the latest .NET Core.
Reading through the documentation, I came across the comparison between Entity Framework Core and Entity Framework 6.x Comparison. Here
Some of the features that I require like: Spatial Data Type is NOT supported by EF Core. So I CAN'T use it, because Spatial Data Type is required in the Project.
Going through the documentation again, I came across this link on How to use EF 6.x with .NET Core: Here
In the article it mentions (Here):
Before you start, make sure that you compile against full .NET
Framework in your project.json as Entity Framework 6 does not support
.NET Core. If you need cross platform features you will need to
upgrade to Entity Framework Core.
I don't really need my project to be cross platform.
The article is not very clear on how to use EF6 with ASP.NET Core.
I created a new ASP.NET Core Web Application
then I installed EF6 using Nuget Package Manager, and got the following error
I went and removed the netcoreapp1.0 from the frameworks in project.json and added net46 as framework, which removed the error for EF, but now I am getting another error.
So how do I use EF6 with ASP.NET core?
When I use EF6 I have to remove all references to .NET Core, does
this mean I am not using .NET Core? What are the disadvantages of this other than it can't run cross platform?
To stop the second error you need to remove the following from the dependencies section of your project.json:
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
}
For reference, the documentation for referencing the full .NET Framework and Entity Framework 6 from an ASP.NET Core project has a full project.json example.
Removing references to .NET Core does not mean you are not using ASP.NET Core. You are only changing the target runtime platform that your ASP.NET Core project will execute on.
Using ASP.NET Core with the full .NET Framework, you get the benefits of the new project structure and unified story for building web UI and web APIs (e.g. unified Controller class), and you also gain access to the mature, fully-featured .NET Framework, enable use of dependencies and NuGet packages which haven't been ported to .NET Core, for example Entity Framework 6.

BreezeJS and Entity Framework 6.0.1

I'm trying to create a Breeze Web API controller and I'm wondering if it is possible with the default MVC/Web API project template that comes with Visual Studio 2013. Updating everything through the Nuget packet manager installs Entity Framework 6.0.1. Attempting to installing Breeze after that results in an error as it attempts to install EF 5 as a dependency, which is not possible given the fact that other parts of the template depend on EF6.
Do we have to wait for a new version of Breeze that works with EF6?
Edit: I want to do this the "breeze way" using [BreezeController] and Odata.
I just wanted to add that even without EF6.1, the MVC 5 updates released today with VS2013 also break breeze. It's hard to separate the pieces to determine which new piece is responsible. It could be MVC or the new odata. In any case, we anxiously anticipate the new version.
Updated 10/29/13
As of now, Breeze 1.4.5 has support for Microsoft's ASP.NET WebApi 2 and Entity Framework 6. Please see http://www.breezejs.com/documentation/download.
Older post:
We don't yet support EF6 but it is coming ... soon...
There is a new package called Breeze.WebApi2 that is compatible with Web API2 and EntityFramework 6. It makes some of the existing Breeze packages obsolete. See http://www.breezejs.com/documentation/start-nuget for details.

Entity Framework Migrations history table

Is it possible to change the name of the history table that the migration framework uses?
I found this: http://entityframework.codeplex.com/wikipage?title=Migrations%20History%20Table%20Customization
but I cannot derive the HistoryContext on version 4.5 of the .Net framework.
Could someone provide an example if possible?
Thanks
HistoryContext is still available to derive from. It is in the following namespace:
System.Data.Entity.Migrations.History
It is contained in the EntityFramework assembly. I can see that this is true for EntityFramwork 6. Perhaps you are using an older version? Ensure you've updated the NuGet package.