Pour débuter, il faut installer .NET Core sur le poste de travail. Dans notre cas, c'est macOS.
On peut aussi installer Visual Studio Code.
Installer un serveur PostgreSQL (sur Mac on peut utiliser Postgres.app).
On va utiliser yeoman pour construire un projet de départ. Installer Yeoman avec npm:
# npm intall yeoman -g
Une fois yeoman d'installer, il faut ajouter le generator aspnet.
Une fois le generator d'installé, il faut créer un répertoire pour le projet et faire:
$ yo aspnet
Choisir le projet Web API Application.
Simplement pour s'assurer que le projet fonctionne bien, on peut dans le terminal (intégré à Visual Studio Code), exécuter:
$ dotnet build
Ce qui compile le projet. Donc, s'il n'y a aucune erreur, tout va bien. Ensuite, on peut le démarrer:
$ dotnet run
Une fois démarré, on peut accéder à l'API en allant sur http://localhost:5000/api/values.
Fabriquer une classe.
Ajouter une dépendance à PostgreSQL pour EntityFramework dans project.json
:
"Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.0-*"
Comme on peut voir dans le fichier project.lock.json
, sous la mention Npgsql.EntityFrameworkCore.PostgreSQL/1.0.0
, les deux dépendances sont installés pour Entity Framework Core:
"Microsoft.EntityFrameworkCore": "1.0.0", "Microsoft.EntityFrameworkCore.Relational": "1.0.0",
using Microsoft.EntityFrameworkCore; namespace EFCoreWebAPI { public class WeatherContext: DbContext { public WeatherContext(DbContextOptions<WeatherContext> options): base(options) { } public WeatherContext() { } public DbSet<WeatherEvent> WeatherEvents { get; set; } public DbSet<Reaction> Reactions { get; set; } public DbSet<Comment> Comments { get; set; } } }
Ajouter dans le fichier project.json
, la dépendance:
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
Ensuite, dans la section tools
, on ajoute la section Microsoft.EntityFrameworkCore.Tools
:
"tools": { "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", "Microsoft.EntityFrameworkCore.Tools": { "version": "1.0.0-preview2-final", "imports": [ "portable-net45+win8+dnxcore50", "portable-net45+win8" ] }
Ensuite on a accès aux outils EF avec :
$ dotnet ef