Cela semble être une erreur vraiment obscure, et je ne sais même pas par où commencer …
CSharpHelper actuel ne peut pas échafauder les littéraux de type ‘System.Func`3 [Microsoft.EntityFrameworkCore.Metadata.IProperty, Microsoft.EntityFrameworkCore.Metadata.IEntityType, Microsoft. Configurez vos services pour en utiliser un qui peut.
Cela se produit quand je cours
dotnet ef migrations add initial
Mise à jour 1 – basée sur la question de Rob
L’architecture de l’application utilise un modèle de domaine riche. Il existe donc quelques “solutions de contournement” pour obtenir des éléments tels que des collections encapsulées et le modèle de énumération typé de Jimmy Bogard.
Chaque object de modèle de domaine a sa propre classe EntityTypeBuilder
dans la couche d’access aux données, qui sont toutes appelées à partir de OnModelCreating
dans DbContext
. Celles-ci affichent également des informations sur la Console
, ce qui me permet de constater que le générateur ne génère aucune erreur (aucune d’elles ne se trouve à ce stade).
DbContext
expose uniquement DbSet
pour les entités racine agrégées, ou pour le dire autrement, uniquement les entités ayant une classe de référentiel correspondante. Les autres objects du modèle de domaine sont des propriétés de navigation et ne nécessitent donc pas que DbSet
soit exposé via DbContext
.
Spécificités de la plateforme (à ma connaissance)
Vous utilisez un environnement d’exécution .NET Core 1.1 mais les anciens packages d’outils (vous devez utiliser les derniers outils, à compter de cette date, il s’agit de preview4 , qui est toujours en alpha , contrairement à l’exécution – ouais, pas très intuitif au début )
En résumé, il s’agit d’un problème connu
"tools": { "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4" }
{ "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-preview2-1-003177" } }
EDIT: Juste pour vous donner une réponse plus complète, voici à quoi ressemblent mon project.json et mon exemple de projet (le tout dans VS Code):
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": { "Microsoft.EntityFrameworkCore": "1.1.0-preview1-final", "Microsoft.EntityFrameworkCore.Design": "1.1.0-preview1-final", "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0-preview1-final", "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0-preview1-final", }, "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" } }, "imports": "dnxcore50" } }, "tools": { "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final" } }