Verwenden des Repository-Musters mit Entity Framework (mvc storefront)

asp.net asp.net-mvc domain-driven-design entity entity-framework

Frage

Kann jemand helfen? Ich habe mir die Videos für die MVC-Storefront angesehen und meine eigene Website mit diesen Techniken erstellt, z.

In den Interfaces gibt es IQueryable zurück, aber bei Entity Framework sollte ich stattdessen ObjectQuery zurückgeben? - Ich werde LINQ verwenden.

Auch in dem gespeicherten Beispiel geht es ungefähr so: IQueryable <Category> GetCategories ();

Auch im MVC-Store war die Category-Klasse eine gebaute Entitätsklasse (Standardklasse). Mit Entity Framework werden diese Klassen jedoch im Objektkontext vorab erstellt - oder nicht?

Also sollte ich sie bauen müssen?

Ich bin ein bisschen verwirrt. Wenn jemand ein hilfreiches Beispiel oder Code hat, wäre das wirklich hilfreich.

Wie gesagt, ich habe mir die Videos von The MVC Storefront mit linq2sql angesehen, möchte aber wirklich Entity Framework verwenden.

Irgendwelche Ideen?

Vielen Dank

Schmiede

Beliebte Antwort

Lassen Sie mich Ihre Fragen einzeln beantworten:

Ihre Repositorys sollten IQueryable <T> und nicht ObjectQuery zurückgeben. Der Grund ist, dass der Zweck des Repository-Musters darin besteht, die Besonderheiten Ihres Datenspeichers zu abstrahieren. Auf diese Weise können Sie beispielsweise ein Mock-Repository ersetzen, wenn Sie Ihre Controller als Unit-Test testen. Wenn Sie das Repository ObjectQuery zurückgeben lassen, abstrahieren Sie nicht das Entity Framework. Eine andere Möglichkeit, dies zu sagen, besteht darin, dass die Benutzer Ihres Repositorys möglichst nicht wissen sollten, dass das Entity Framework die O / R-Zuordnung durchführt.

Um die Größer-und-Unter-Symbole in Absatzüberlauf im Stapelüberlauf zu verwenden, müssen Sie sie wie in HTML mit einem Escape-Zeichen versehen, dh:

&lt;

Sie müssen dies nicht in einem Codeblock tun. In Codeblöcken geben Sie einfach das Symbol für kleiner als / größer als ein.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum