2009-05-22 8 views
0

Welche Probleme werde ich, wenn ich mein Entity Framework Abfragen von diesem ändern:Welche Probleme werde ich mit Entity Framework haben, wählen Sie bestimmte Spalten anstelle des gesamten Objekts?

var contracts = from contract in Context.Contracts select contract; 

dazu:

var contracts = from contract in Context.Contracts select new MyContract{ Key = contract.key, Advertiser = new MyAdvertiser{ Key = contract.Advertiser.Key } }; 

dh von Ändern eines Auftrags der Auswahl zugrunde, ein neues Objekt zu der Auswahl an den Säulen vom Vertrag.

In beiden Ansatz bin ich die Entitäten Domänenobjekte nach dem Laden zugeordnet, und zurück zu Entitäten beim Speichern.

Antwort

5

Mit diesem Ansatz ist nichts falsch. Es gibt ein paar Dinge zu beachten:

1) Domain-Objekte sollten immer vollständig gefüllt sein, um Fälle zu verhindern, in denen ein Domain-Prozess versucht, Daten zu verwenden, die aussieht, als wäre es da aber nicht. Wenn Sie gleiche Domäne Prozesse, die den vollen Satz von Daten von einem Domain-Objekt nicht benötigen, und Sie wollen nicht die unnötigen Daten zu laden, haben, ein zweites Domain-Objekt für den Einsatz in diesen Prozessen erstellen.

2) Datenbank-Server können Abfragen optimieren, die identische Feld haben listet besser als Abfragen, die unterschiedliche Feldlisten haben. Wenn die Leistung für diese Anwendung entscheidend ist, sollten Sie den Effekt messen, den diese Änderung auf die Abfrageleistung hat. Es scheint, als würde die Begrenzung der Ergebnismenge die Leistung erhöhen, und zwar generell, aber nicht immer.

0

Ich denke nicht, dass Sie ein Problem haben werden (ich mache es auch so), stellen Sie sicher, dass Sie eine Methode schreiben, um die Mappings durchzuführen, damit Sie sie nicht bei jeder Abfrage wiederholen müssen.

Verwandte Themen