Création d'une application CRUD avec WebMatrix, Razor et Entity Framework
Un article de Hinault Romaric
Le 2012-04-27 17:34:10, par Hinault Romaric, Responsable .NET
J'ai redigé un article sur la création d'une application CRUD avec WebMatrix, Razor et Entity Framework
J'ai eu à développer récemment une application CRUD avec WebMatrix. Utilisant principalement la classe DataBase de l'espace de nom Microsoft.Data pour la manipulation des données, lorsque j'ai aperçu Entity Framework dans les packages NuGet avec WebMatrix 2 bêta, je me suis dit " génial " ! Ça veut dire que je peux l'utiliser dans ma solution.
J'ai donc opté pour l'utilisation de la bibliothèque au sein de mon application WebMatrix. Entity Framework est en passe de devenir un standard pour la manipulation des données et est recommandé par Microsoft.
Contrairement à Visual Studio et ASP.NET ou l'on dispose de plusieurs outils rendant facile la conception d'une application CRUD avec Entity Framework, sur WebMatrix, c'est un peu compliqué et l'on ne dispose pas des fonctionnalités comme l'échafaudage, et encore moins des ressources sur Internet.
C'est pourquoi j'ai décidé de fournir au travers de cet article une démarche pas à pas avec autant de détails que possible pour la conception d'une application CRUD avec WebMatrix, Razor et Entity Framework.
N'hésitez pas à noter l'article et y ajouter un pouce vers le haut
-
RewardMembre confirméSalut !
Moi qui comptais publier un article sur Code First, ton "Tout en 1" me prend de court ^^
Je corrige quelques coquilles
Titre du chapitre VI. Création du DBContext
Dans le code de PersonneRepository:Code C# : 1
2
3
4
5public void Delette(Personne personne) { _context.Personnes.Remove(personne); _context.SaveChanges(); }
Un seul t.
De plus cette fonction fait doublon avec celle-ci, est-ce normal ?Code C# : 1
2
3
4
5public void Remove(Personne personne) { _context.Personnes.Remove(personne); _context.SaveChanges(); }
Je n'ai pas vu d'autres fautes.
Par contre j'ai une question sur le fond.
Ton "repository", du moins l'écriture de PersonneRepository, pour moi c'est de l'accès aux données.
Hors d'après ce que tu écris, je cite " Le Repository permet de créer une couche d'abstraction entre la couche d'accès aux données et la logique métier de l'application"; ce n'est pas le cas.
Je m'interroge, que mets-tu dans ta DAL ?le 01/05/2012 à 15:40 -
Hinault RomaricResponsable .NETSalut,
Corrigé, la fonction delette etait de trop. Erreur d’inattention de ma part
C'est une définition un peu généraliste qui - je dois le reconnaître - dans ce contexte prête un peu à confusion.
En effet, dans cette architecture on n'a pas de BLL ou elle peut se confondre avec le Repository. Dans ce cas, la DAL se resume uniquement au DBContext. Mais au vue de la structure de l'application, je suis tout à fait d'accord avec toi que le Repository c'est de l'accès aux données.le 12/05/2012 à 13:51 -
RewardMembre confirméOk, je comprends mieux maintenant
Ton article m'a fait découvrir WebMatrix et ses possibilités, mercile 13/05/2012 à 11:07 -
oldbrazilNouveau Candidat au ClubBeau travail.
Tout y est.
Il y a juste ce qu'il faut de détail.
Une petite question cependant :
vous évoquez le fait que, si l'on modifie le modèle, la DB doit être re-créée.
C'est certainement efficace, mais très peu subtil (et trop dangereux dans bcp de scénarii de développement)
Pourtant, il me semble qu'avec le version 4.3 d'EF, les modifications pourraient être prises en compte au fur et à mesure (incrémentiel)What Changed Between EF 4.2 and EF 4.3
The notable changes between EF 4.2 and EF 4.3 include:
•New Code First Migrations Feature. This is the primary new feature in EF 4.3 and allows a database created by Code First to be incrementally changed as your Code First model evolves.
Est-ce que je me trompe ?le 31/07/2012 à 21:24 -
Hinault RomaricResponsable .NETSalut,
Non, tu ne te trompes pas. La version 4.3 d'Entity Framework introduit justement comme nouveauté phare Code First Migrations qui permet d'effectuer des mises à jour de la base de données à partir des modifications apportées au modèle avec moins de risque de perte de données. j'ai même écrit un article dessus.
L'article est basé sur le version 4.2 d'EF voila pourquoi je ne mentionne pas cela. De plus, Code Fisrt Migrations est extrêmement lié à la console NuGet qui malheureusement n'est pas prise en charge par WebMatrix.le 14/09/2012 à 11:50 -
BooyakhaMembre du ClubMerci Romaric pour cet article fort bien expliqué et détaillé !
Cependant j'ai une erreur lors de la compilation au niveau de Affiliation.cs, j'obtiens l'erreur suivante :
Code : CS0246: Le type ou le nom d'espace de noms 'ForeignKey' est introuvable
Code : using System.ComponentModel.DataAnnotations;
Merci beaucoup !le 30/10/2012 à 13:54