Bei LINQ zu SQL ist es wichtig, den Unterschied zwischen
und zu verstehen. Select
Es wird verwendet, um ein einzelnes Element aus dem Datensatz abzurufen, und SelectMany
Die Abfrageergebnisse, mit denen die verschachtelte Menge abgeflacht werden. Select
SelectMany
Die folgenden Beispiele erklären die Unterschiede zwischen den beiden deutlicher:
unter der Annahme, dass wir eine
-Klasse haben, die ein -Matchtribut enthält, das einen Satz einer Person
-Instanz zurückgibt. Um alle Telefonnummern aller Mitarbeiter abzurufen, können wir PhoneNumbers
: PhoneNumber
verwenden
Select
<code class="language-csharp">IEnumerable<Person> people = new List<Person>(); // Select: 返回一个电话号码列表的列表 IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);</code>
phoneLists
SelectMany
Außerdem können wir die Daten des Vaters
<code class="language-csharp">// SelectMany: 将集合扁平化为一个电话号码列表 IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);</code>
Person
SelectMany
Durch das Verständnis des Unterschieds zwischen und
<code class="language-csharp">// 带结果选择器的 SelectMany: 在结果中包含父数据 var directory = people .SelectMany(p => p.PhoneNumbers, (parent, child) => new { parent.Name, child.Number });</code>
Das obige ist der detaillierte Inhalt vonWählen Sie vs. selectMany in linq zu SQL: Wann sollte ich welche verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!