Für mein Projekt verwende ich SqlCE 3.5, Linq2Sql und generieren Entity-Klassen (dbml-Datei) mit SqlMetal.Linq-zu-Sql, Verwendung von Entitätsklassen und Parent/Child-Objekten
Wenn ich Erweiterungen der Entitätsklassen als meine Geschäftsobjektklassen verwende, wie soll ich mit untergeordneten Objekten umgehen?
Kann ich das vorhandene EntitySet (Of ChildClass) verwenden, das sich bereits in der dbml-Datei befindet? Oder sollte ich eine neue Kollektion Eigenschaft in meiner Teilklassenerweiterung, wie:
public partial class ParentClass
{
public List<ChildClass> children { get; set; }
}
bekam ich diese vage Annahme, dass EntitySet (Of Child) irgendeine Art von direkten Anschluss an die vollständige Datenbanktabelle hat. Und das sollte ich vielleicht als reines Datenzugriffsobjekt verwenden, und für Geschäftslogik sollte ich dieses andere Auflistungsobjekt behalten, das nur eine Teilmenge der Tabelle enthalten kann.
Aber ich bin mir nicht sicher, ob ich das Konzept völlig falsch verstanden habe? Ich mag es wirklich zu wissen, wie dies richtig verwendet werden sollte.
EDIT1:
Eine Sache, die möglicherweise ein Performance-Problem für mich ist, wenn es eine Datagridview meiner Objektsammlungen zu binden. Einige Eigenschaften werden häufig aus einem Börsen-Datenfeed aktualisiert, und ich frage mich, ob die Verwendung der EntitySets als Business-Layer-Sammlung dies verlangsamt. Obwohl ich nicht submitchanges auf diese Updates aufrufen. Trotzdem kann ich aufgrund der Updates nicht die Datagridview scrollen. Kann dies daran liegen, dass die EntitySets verwendet werden oder nur das Datagridview selbst so oft aktualisiert wird, dass das Scrollen unmöglich erscheint?
Danke! Ich wünschte, ich hätte deine Bedeutung genau verstanden; Mit "exponieren sie mit einem IList und ein Repository verwenden, um die Liste zu füllen", meinen Sie so etwas wie ersten Code Teil dieses Beispiels (http://mikehadlow.blogspot.com/2008/03/using-irepository-pattern-with -linq-to.html), aber IList anstatt in diesem Beispiel IQueryable zurückgeben? – bretddog
Moded diesen Kommentar zu EDIT1 oben .. – bretddog
Wenn Sie IQueryable jedes Mal, wenn Sie einen Linq-Filter auf die Liste wie Where, Distinct und so weiter ... zurückgeben wird EF zurückrufen und die Datenbank – Raffaeu