Ricerca…


Generazione del modello dal database

In Visual Studio vai a Solution Explorer quindi fai clic su Project per aggiungere il modello Right mouse . Scegli il ADO.NET Entity Data Model

inserisci la descrizione dell'immagine qui

Quindi selezionare Generate from database e fare clic su Next nella finestra successiva, fare clic su New Connection... e scegliere il database da cui si desidera generare il modello (Potrebbe essere MSSQL , MySQL o Oracle )

inserisci la descrizione dell'immagine qui

Dopo aver fatto questo, fai clic su Test Connection per vedere se hai configurato correttamente la connessione (non andare oltre se fallisce qui).

Fare clic su Next quindi scegliere le opzioni desiderate (come lo stile per la generazione di nomi di entità o per aggiungere chiavi esterne).

Fare nuovamente clic su Next , a questo punto si dovrebbe avere il modello generato dal database.

Aggiunta di annotazioni di dati al modello generato

Nella strategia di generazione codice T4 utilizzata da Entity Framework 5 e versioni successive, gli attributi di annotazione dati non sono inclusi per impostazione predefinita. Per includere le annotazioni di dati in cima ad un determinato bene ogni rigenerazione del modello, file modello aperto incluso con EDMX (con .tt estensione) quindi aggiungere un using economico nella UsingDirectives metodo come di seguito:

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>
(itemCollection))
{
    fileManager.StartNewFile(entity.Name + ".cs");
    BeginNamespace(code);
#>
<#=codeStringGenerator.UsingDirectives(inHeader: false)#>
using System.ComponentModel.DataAnnotations;  // --> add this line

Ad esempio, supponiamo che il modello includa KeyAttribute che indica una proprietà di chiave primaria. Per inserire KeyAttribute automaticamente durante la rigenerazione del modello, trova la parte del codice che contiene codeStringGenerator.Property come di seguito:

var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
        foreach (var edmProperty in simpleProperties)
        {
#>
    <#=codeStringGenerator.Property(edmProperty)#>
<#
        }
    }

Quindi, inserire una condizione if per verificare la proprietà chiave come segue:

var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
        foreach (var edmProperty in simpleProperties)
        {
             if (ef.IsKey(edmProperty)) { 
#>    [Key]
<#      } 
#>
    <#=codeStringGenerator.Property(edmProperty)#>
<#
        }
    }

Applicando le modifiche di cui sopra, tutte le classi del modello generate avranno KeyAttribute sulla proprietà della chiave primaria dopo aver aggiornato il modello dal database.

Prima

using System;

public class Example
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Dopo

using System;
using System.ComponentModel.DataAnnotations;

public class Example
{
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
}


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow