Sök…


Generera modell från databasen

I Visual Studio går du till din Solution Explorer och klickar sedan på Project så lägger du till höger musmodell . Välj ADO.NET Entity Data Model

ange bildbeskrivning här

Välj sedan Generate from database och klicka på Next i nästa fönster klicka på New Connection... och peka på databasen du vill generera modell från (Kan vara MSSQL , MySQL eller Oracle )

ange bildbeskrivning här

När du har gjort detta klickar du på Test Connection att se om du har konfigurerat anslutningen ordentligt (gå inte längre om den misslyckas här).

Klicka på Next och välj sedan alternativ du vill (som stil för att generera enhetsnamn eller lägga till utländska nycklar).

Klicka på Next igen, då bör du ha en modell som genererats från databasen.

Lägga till kommentarer till den genererade modellen

I T4-kodgenerationsstrategi som används av Entity Framework 5 och högre, ingår inte standarddata för anteckningar i kommentarerna. För att inkludera dataanmärkningar ovanpå vissa egenskaper varje modellförnyelse, öppna mallfilen som ingår i EDMX (med .tt förlängning) och lägg sedan till ett using uttalande under UsingDirectives metoden som nedan:

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

Anta som exempel att mallen bör innehålla KeyAttribute som indikerar en primär nyckelegenskap. För att infoga KeyAttribute automatiskt när du regenererar modell, hitta en del av koden som innehåller codeStringGenerator.Property enligt nedan:

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

Sätt sedan in ett om-villkor för att kontrollera nyckelegenskapen som denna:

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

Genom att tillämpa ändringar ovan kommer alla genererade KeyAttribute att ha KeyAttribute på sin primära nyckelegenskap efter uppdatering av modellen från databasen.

Innan

using System;

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

Efter

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow