Entity Framework
Generazione del primo modello di database
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
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 )
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; }
}

