2016-04-01 11 views
2

festlegen Wir verwenden EF6 als DB zuerst und die Modelle und EDMX-Dateien werden mit .tt Vorlagen generiert.Wie kann ich Entity Framework CommandTimeout in AutoGenerated Edmx-Datei

Jetzt müssen wir Befehl Zeit dar, welche recht geradlinig ist

Partial Public Class ReservingEntities 
Inherits DbContext 

Public Sub New() 
    MyBase.New("name=ReservingEntities") 
    Database.CommandTimeout = 0 
End Sub 

Aber das Problem ist, jedes Mal wenn wir unsere EF aus der Datenbank Database.CommandTimeout = 0 Linie aktualisieren entfernt ist als Klasse aus Vorlage aufgebaut ist.

Können Sie vorschlagen, wo der richtige Ort ist, um das Zeitlimit festzulegen, damit es beibehalten wird?

+0

Sie können die 'T4' Vorlage bearbeiten und Ihren Code dort hinzu. –

Antwort

2

Sie können eine dieser Optionen verwenden:

  • Sie t4 Vorlagen von Ihrem aktuellen Projekt anpassen können.

  • Sie können auch Visual Studio-Vorlagen für Entity-Framework bearbeiten. Dann verwendet jede edmx, die Sie dem Projekt mithilfe des Fensters "Neues Element hinzufügen" hinzufügen und ADO.NET-Entitätsdatenmodell auswählen, modifizierte Vorlagen.

die Vorlagen Entity Framework für aktuelle projet anpassen

Sie die .Context.tt Vorlage bearbeiten können, die unter .edmx-Datei und der Code dort hinzu.

In VB.NET diese .tt Dateien sind ausgeblendet. Um sie zu ändern, klicken Sie in der Werkzeugleiste des Lösungs-Explorers auf Alle Dateien anzeigen, um die Dateien .tt unter Ihrer .edmx Datei anzuzeigen. Dann .Context.tt Datei öffnen und den Code nach diesem Block hinzu:

Partial <#=Accessibility.ForType(container)#> Class <#=code.Escape(container)#> 
    Inherits DbContext 

    Public Sub New() 
     MyBase.New("name=<#=container.Name#>") 

In C#, Dateien nicht versteckt sind und Sie können .Context.tt Datei öffnen und den Code nach diesem Block setzen:

<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext 
{ 
    public <#=code.Escape(container)#>() 
     : base("name=<#=container.Name#>") 
    { 

Anpassen der Entitätsrahmenvorlagen, die Visual Studio verwendet

Sie können Visual Studio-Elementvorlagen für Entitätsframework anpassen. Dann verwendet jede edmx, die Sie dem Projekt hinzufügen, indem Sie das Fenster "Neues Objekt hinzufügen" verwenden und ADO.NET-Entitätsdatenmodell auswählen, modifizierte Vorlagen verwenden.

Zum Beispiel für C# und locale 1033 und EF6, können Sie CSharpDbContext.Context.tt Datei bearbeiten, die bei Temperaturen unterhalb Pfad gespeichert ist:

\VisualStudioInstallationPath\Common7\IDE\ItemTemplates\CSharp\Data\1033\DbCtxCSEF6 
+1

Sie können diesen Beitrag auch hilfreich finden: [Anpassen des DbContext Generator] (http://stackoverflow.com/a/34667164/3110834). In dem anderen Beitrag habe ich gezeigt, wie Sie die Vorlagen, die Visual Studio verwenden, anpassen können. Sie können Visual Studio-Elementvorlagen für Entitäts-Framework anpassen. Dann verwendet jede edmx, die Sie dem Projekt hinzufügen, indem Sie das Fenster "Neues Objekt hinzufügen" verwenden und ADO.NET-Entitätsdatenmodell auswählen, modifizierte Vorlagen verwenden. –

Verwandte Themen