Ich bin mit EF 6.1 mit Visual Studio 2013. Ich habe eine Ansicht ModellLINQ-Abfrage benutzerdefiniertes best practice in EF Objekt 6.1
public class SaprePartsViewModel
{
public long ItemID { get; set; }
public string ItemCode { get; set; }
public string ItemName { get; set; }
}
Und hat auch Datenbanktabelle SapreParts
mit gleichen Spaltennamen.
ich diese zwei Verfahren getan haben Brauch zu holen Objekte
i.
var sqlQueryList = db.Database.SqlQuery<SaprePartsViewModel>(
"select ItemID,ItemCode,ItemName from SpareParts").ToList();
ii.
Beide Abfrage funktioniert gut.Aber meine Frage ist welche zu verwenden? Welche ist optimal für die Leistung?
Ich denke, Leistung ist so ein schwieriges Thema, da es so viele Metriken gibt. Für die einfache Abfrage oben, ist die offensichtliche Antwort, die EF-Konvention zu verwenden, wie Sie intellisense kostenlos erhalten, und macht Tests ein Kinderspiel. Statische Strings nach der SQL-Abfrage werden im Laufe der Zeit brechen und der Körper der Abfrage kann auch im Laufe der Zeit ändern, so haben Sie ein bewegliches Ziel mit der Option i - für #ii gehen, es sei denn, Sie haben messbare Probleme –
beide Autos auf der Rennstrecke zu finden welches bewegt sich schneller –
ShekharPankaj - Leistung geht es nicht nur um Geschwindigkeit (imho). es geht auch um die Klarheit des Zwecks und die Leichtigkeit der Wartung. Es gibt ein altes Sprichwort hier in Schottland * mehr Eile, weniger Geschwindigkeit *. Kurz gesagt, balancieren Sie die Implikationen aus, wenn Sie sich einige Millisekunden von einer Abfrage rasieren, den Arbeitscode aus der Tür bekommen und leicht gewartet werden. –