Suche…


Modell aus Datenbank generieren

Gehen Sie in Visual Studio zu Ihrem Project Solution Explorer und klicken Sie auf Project , um das Modell mit der rechten Maustaste hinzuzufügen. Wählen Sie ADO.NET Entity Data Model

Geben Sie hier die Bildbeschreibung ein

Wählen Generate from database und klicken Sie im nächsten Fenster auf Next , klicken Sie auf New Connection... und zeigen Sie auf die Datenbank, aus der Sie das Modell generieren möchten (möglicherweise MSSQL , MySQL oder Oracle ).

Geben Sie hier die Bildbeschreibung ein

Nachdem Sie dies getan haben, klicken Sie auf Verbindung Test Connection zu sehen, ob Sie die Verbindung ordnungsgemäß konfiguriert haben (fahren Sie nicht weiter fort, falls die Verbindung hier fehlschlägt).

Klicken Sie auf Next und wählen Sie dann die gewünschten Optionen aus (z. B. Stil zum Generieren von Entitätsnamen oder zum Hinzufügen von Fremdschlüsseln).

Klicken Sie erneut auf Next . An diesem Punkt sollte das Modell aus der Datenbank generiert werden.

Hinzufügen von Datenanmerkungen zum generierten Modell

In der T4-Codegenerierungsstrategie, die von Entity Framework 5 und höher verwendet wird, werden die Attribute für die Anmerkungsdaten standardmäßig nicht berücksichtigt. Um bei jeder Modellregenerierung Datenanmerkungen zu bestimmten Eigenschaften hinzuzufügen, öffnen Sie die in EDMX enthaltene Vorlagendatei (mit der Erweiterung .tt ) und fügen Sie eine using Anweisung unter der UsingDirectives Methode wie UsingDirectives :

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

Angenommen, die Vorlage sollte KeyAttribute das eine Primärschlüsseleigenschaft angibt. Um KeyAttribute automatisch während der Modellregenerierung einzufügen, suchen Sie einen Teil des Codes, der codeStringGenerator.Property enthält, wie codeStringGenerator.Property :

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

Fügen Sie dann eine if-Bedingung ein, um die Schlüsseleigenschaft wie folgt zu überprüfen:

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

Wenn Sie die obigen Änderungen anwenden, wird für alle generierten Modellklassen nach der Aktualisierung des Modells aus der Datenbank KeyAttribute in der Primärschlüsseleigenschaft KeyAttribute .

Vor

using System;

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

Nach dem

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow