1

Si nous développons un système utilisant la base de données, la première approche est-elle essentielle pour dessiner un diagramme de classes?Où appliquer un diagramme de classes lorsque nous développons à l'aide de l'application ASP.NET MVC avec Entity Framework?

J'utilise Entity Framework & J'ai généré le modèle de données d'entité à partir de la base de données. Je n'ai aucun droit de faire des changements dans les classes de modèles générées. (héritant d'autres classes ou faisant le résumé de classe & etc.) Même si j'ai fait n'importe quelle modification dans ces classes, toutes les modifications sont réinitialisées quand je génère l'EDM encore.

Alors Où appliquer le diagramme de classes que j'ai dessiné? J'ai mis en place le diagramme de classes lorsque je développe un système 3 roues autonome. Maintenant, j'utilise ASP.NET MVC 4.

Je suppose que je n'ai pas besoin de me soucier du diagramme de classes si je suis Database First. Ai-je raison? Je suis vraiment déroutant avec ces architecture de pneu & MVC ...

+0

Les classes générées sont partielles afin que vous puissiez conserver vos modifications de se réécrits décrit [ici] (http://stackoverflow.com/questions/15621656/data-annotations-with-entity-framework-5-0 -database-first). Si vous voulez commencer avec des classes, regardez dans le code du premier flux de travail. –

Répondre

0

Votre modèle de données d'entité répriment les tables. Vous pouvez utiliser le modèle de référentiel pour les accéder au contrôleur. Vous pouvez également créer des modèles de vue (classe) en fonction des besoins et mettre à jour les données de Entity Data Model dans le modèle de vue. Cela découplera votre couche de données et votre domaine.

0

Exemple:

Script SQL:

CREATE DATABASE TEST 
GO 
USE [TEST] 
GO 

CREATE TABLE [dbo].[Org](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [Name] [varchar](150) NULL, 
    [Website] [varchar](50) NULL, 
    [Address] [nvarchar](250) NULL, 
CONSTRAINT [PK_Org] PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
    ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

Entité/Modèle:

[Table("Org")] 
    public class Org 
    { 
     [Key] 
     public int Id { get; set; } 
     [Required)] 
     public string Name { get; set; } 
     public string Website { get; set; } 
     public string Address { get; set; } 
    } 
**DbContext:** 

    public class ApplicationDbContext : DbContext 
{ 
    public ApplicationDbContext() : base("DefaultConnection") 
    {   
    } 
    public DbSet<Org> Orgs { get; } 

} 

Mais il y a un problème .Lorsque vous vous changez DB alors Upda Le modèle/l'entité manuellement doit être .