37
loading...
This website collects cookies to deliver better user experience
dotnet build
pour vérifier que tout est okDbContext
. Je trouve quand même que c'est un peu lourd de devoir faire ça à chaque fois que je veux tester vite fait un truc (comme pour l'application destinée à essayer HTMX avec ASP.NET Core MVC par exemple).tada model NomEntite ...
pour générer un fichier Models/NomEntite.cstada enum NomEnum ...
pour générer un fichier Models/NomEnum.cstada context ...
pour générer un fichier Models/ModelContext.csEnum
.tada --help
ou tada
sans autre paramètre, on tombe sur l'aide du programme.Tada Command-Line Tools (0.0.1)
Utilisation : tada [options] [commande] [arguments]
Options :
-h|--help Affiche l'aide de la ligne de commande
-p|--project <PROJET> Nom du projet pour définir le namespace
--version Affiche la version utilisée
Commandes :
model Génère une classe Models/NomEntite.cs
enum Génère une classe Models/NomEnum.cs
context Génère une classe Models/ProjetContext.cs
Pour plus d'informations sur une commande, lancer 'tada [commande] --help'.
Tada Command-Line Tools (0.0.1)
Projet introuvable :
- L'option --project <PROJET> n'est pas définie
- Il n'existe pas de fichier PROJET.csproj dans le dossier en cours
tada model
. Cela m'a permis à la fois de mettre au point mais aussi de documenter la syntaxe particulière qui me sert à décrire le modèle de données en un minimum d'information.Tada Command-Line Tools (0.0.1) - Génère une classe Models/NomEntite.cs
Utilisation : tada model [options] [arguments]
Options :
-h|--help Affiche l'aide de la ligne de commande
-p|--project <PROJET> Nom du projet pour définir le namespace
(obtenu depuis PROJET.csproj sinon)
Arguments : Nom de l'entité suivi de la description de ses propriétés (sous la forme Nom:{+}Type)
Exemples :
tada model Genre Genre_ID:int Title:+string(30) --project MvcMovie
tada model Genre Genre_ID:int Title:+string(30)
Exemple de code généré :
Movie_ID:int [Key] // première propriété avec un nom terminé par "_ID"
public int Movie_ID { get; set; }
Title:+string(60) [Required] // le type est précédé par "+"
[StringLength(60)]
public string Title { get; set; }
ReleaseDate:DateTime public DateTime ReleaseDate { get; set; }
Genre:Genre public int Genre_ID { get; set; }
[ForeignKey("Genre_ID")]
public virtual Genre Genre { get; set; }
Price:decimal(18,2) [Column(TypeName = "decimal(18, 2)")]
public decimal Price { get; set; }
Rating:+RatingEnum [Required]
public RatingEnum Rating { get; set; }
Directors:Director[] public ICollection<Director> Directors { get; set; }
[Required]
)string(60)
decimal(18,2)
tada model Genre Genre_ID:int Title:+string(30) Movies:Movie[]
, on obtient le code source suivant (à condition de le lancer depuis le dossier du projet "MvcMovie") :using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace MvcMovie.Models
{
public class Genre
{
[Key]
public int Genre_ID { get; set; }
[Required, StringLength(30)]
public string Title { get; set; }
public ICollection<Movie> Movies { get; set; }
}
}
c:\Code\MvcMovie\MvcMovie> tada model Movie Movie_ID:int Title:+string(60) ReleaseDate:DateTime Genre:Genre Price:decimal(18,2) Rating:+RatingEnum Directors:Director[]
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace MvcMovie.Models
{
public class Movie
{
[Key]
public int Movie_ID { get; set; }
[Required, StringLength(60)]
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
[ForeignKey("Genre_ID")]
public virtual Genre Genre { get; set; }
public int Genre_ID { get; set; }
[Column(TypeName = "decimal(18, 2)")]
public decimal Price { get; set; }
[Required]
public RatingEnum Rating { get; set; }
public ICollection<Director> Directors { get; set; }
}
}
Tada Command-Line Tools (0.0.1) - Génère une classe Models/NomEnum.cs
Utilisation : tada enum [options] [arguments]
Options :
-h|--help Affiche l'aide de la ligne de commande
-p|--project <PROJET> Nom du projet pour définir le namespace
(obtenu depuis PROJET.csproj sinon)
Arguments : Nom de l'enum suivi de ses valeurs
Exemples :
tada enum Rating Enfants Interdit_moins_13_ans Interdit_mineurs Tout_public --project MvcMovie
tada enum Rating Enfants Interdit_moins_13_ans Interdit_mineurs Tout_public
tada enum -p MvcFacture Tva Normal Intermédiaire Réduit Particulier Zéro
enum Rating Enfants Interdit_moins_13_ans Interdit_mineurs Tout_public
lancée depuis le dossier du projet "MvcMovie" afficher le code suivant :namespace MvcMovie.Models
{
public enum Rating
{
Enfants,
Interdit_moins_13_ans,
Interdit_mineurs,
Tout_public
}
}
Tada Command-Line Tools (0.0.1) - Génère une classe Models/ProjetContext.cs
Utilisation : tada context [options] [arguments]
Options :
-h|--help Affiche l'aide de la ligne de commande
-p|--project <PROJET> Nom du projet pour définir le namespace
(obtenu depuis PROJET.csproj sinon)
Arguments : Liste des entités du DbContext.
Exemples :
tada context Movie Genre Director --project MvcMovie
tada context Movie Genre Director
tada -p MvcBlog context Blog Post Comment
tada context -p MvcFacture Client Article Facture Ligne
tada context Movie Genre Director
lancée depuis le dossier du projet "MvcMovie" va afficher :using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
namespace MvcMovie.Models
{
public class MvcMovieContext : DbContext
{
public MvcMovieContext(DbContextOptions<MvcMovieContext> options) : base(options) { }
public DbSet<Movie> Movies { get; set; }
public DbSet<Genre> Genres { get; set; }
public DbSet<Director> Directors { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) { }
}
}
dotnet tada ...
), mais je ne suis pas certain que cela en vaille la peine pour une utilisation personnelle.