EntityDataSource und Entity Framework 6

8

Ich lerne ASP.NET. Ich kam zu EntityDataSorce Kontrolle. Ich benutze EF6. Ich habe gelesen, dass dieses Steuerelement und EF6 einige Probleme, Konflikte, aber mit der letzten Aktualisierung von EntityDataSource hat dieses Problem gelöst. Ссылка

Ich versuche, obigen Link zu folgen. Zuerst erstelle ich ein .edmx-Modell

Installieren Sie neue EntityDataSource Contro mit NuGet

Ich habe zwei EntityDataSource-Steuerelemente hinzugefügt und das Präfix von einem von ihnen in ef geändert. Also ich habe zwei Kontrolle eine von ihnen ist alt und andere ist neu aktualisiert

Wenn ich auf den alten klicke, kann ich das Konfigurations-Popup sehen und den Bildschirm Datenquelle konfigurieren erreichen. Aber wenn man auf das neue klickt, gibt es kein Popup. Wie kann ich die Datenquelle konfigurieren? Was ist daran falsch?

Web.config

%Vor%

Default.aspx:

%Vor%     
Omer K 14.09.2014, 18:38
quelle

4 Antworten

12

Die Benutzeroberfläche wird bei Verwendung von EF6 nicht unterstützt. Wir empfehlen nicht mehr, die Entity-Datenquelle für neue Projekte zu verwenden. Aus diesem Grund haben wir einfach eine Datenquelle bereitgestellt, die mit EF6 verwendet werden kann. Sie müssen die Konfiguration direkt im Markup durchführen.

    
Rowan Miller 15.09.2014, 16:19
quelle
1

Ich stieß auch auf dieses Problem und fand "Model Binding" Ссылка

Der Post durchläuft den Prozess der Erstellung von "Code First" Datenmodellklassen, aber ich habe gerade den ItemType mit den Klassen, die durch den "EF Designer from database ..." -Prozess generiert wurden, umgestellt und es funktionierte gut.

>

Hoffe, das hilft jemandem, der immer noch sucht.

Mike

    
Mikey 30.11.2015 14:01
quelle
1

Dov Millers Antwort war knapp, hat aber bei mir nicht funktioniert, weil ich nicht verstanden habe, welchen Namen ich für ContextTypeName angegeben habe. Ich habe mein Modell mit dem Designer erstellt und in der Lösung keinen von ObjectContext abgeleiteten Namen gefunden.

Also habe ich das getan, nachdem ich viele Threads angeschaut habe:

  1. Anstelle von ContextTypeName wurde die EntitySetName-Eigenschaft hinzugefügt, die auf die Set-Eigenschaft meiner Klasse verweist.

  2. Wählen Sie EntityDataSource aus, und doppelklicken Sie auf das Ereignis OnContextCreating, um eine Ereignismethode zu erstellen. Der folgende Code wurde eingegeben, um den DbContext in ObjectContext zu konvertieren, und der IObjectContextAdapter wurde aufgelöst, um die richtige using-Klausel hinzuzufügen.

    var Kontext = neu MyModelContainer (); e.Context = ((IObjectContextAdapter) -Kontext) .ObjectContext;

Es funktionierte schließlich als Datenquelle für die Gridview.

Finden Sie die obige Lösung in diesem Thema wo die answer by user2076170 zeigt den Ereigniscode in Schritt 2 oben. Ich habe Schritt 1 alleine gefunden.

    
user173399 13.06.2017 14:58
quelle
1

Ich habe von diesem Link erfahren Entity DataSource funktioniert nicht mit Entity Framework 6 Upgrade in der Antwort von Sergey, dass Sie die alte EntityDataSource aus der Toolbox in den Designer löschen und dann das Tag-Präfix in ef anstelle von asp ändern können. (Ich kam zu dem Link in Semindas Kommentar zu der Frage hier). Danach können Sie im Designer- und Eigenschaftenfenster weiter damit arbeiten und es funktioniert.

Die Antwort dort erwähnt, dass, wenn Sie Ereignisse der EntityDataSource verwenden, Sie den Code hinter

ändern müssen

Von

%Vor%

NACH

%Vor%

Der Punkt ist, dass Microsoft.AspNet.EntityDataSource zu EventArgs hinzugefügt wird.

Entfernen Sie auch die Eigenschaften DefaultContainerName und ConnectionString und setzen Sie ContextTypeName auf die EntityDataSource, wie in LMKs Kommentar erwähnt.

Ich hoffe, dies kann denjenigen helfen, die die EntityDataSource immer noch mit dem Designer und nicht nur mit Markup verwenden wollen.

    
Dov Miller 20.02.2017 08:12
quelle