Abrufen von eindeutiger Datensätze mithilfe von Query-Expression in Microsoft CRM 2011
Ich habe einen Zweifel in das abrufen der Datensätze in CRM 2011 mithilfe von C# RetrieveMultiple-Methode im web service.
Ich abrufen müssen eindeutige Datensätze aus einer Entität basiert auf einem Attribut-Wert(primary key). Ich bin in der Lage zu erreichen dies, indem mithilfe des folgenden Codes
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("primarycolumn", "column1");
query.Distinct = true;
EntityCollection result1 = serviceProxy.RetrieveMultiple(query);
Ausgabe:
primarycolumn column1
xyz 1
lmn 2
Diese zeigt eindeutige Datensätze. Aber wenn ich paar mehr Spalten, um die ColumnSet geben, die Ergebnisse nicht unterscheidbar sind. Dies wird im folgenden code
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("primarycolumn", "column1", "column2");
query.Distinct = true;
EntityCollection result1 = serviceProxy.RetrieveMultiple(query);
Ausgabe:
primarycolumn column1 column2
xyz 1 a
xyz 1 b
lmn 2 a
Ich brauche das Ergebnis Verschieden zu sein, nur basierend auf der primären Spalte.
Bitte helfen Sie mir, wie dies zu erreichen.
- Weitere Informationen auf die oben genannte Frage.
Tatsächlich, der code ist in C#. Die Tabelle unten zeigt die Tabelle die ich Abfragen
**Primary
column Column1 Column2 Column3<br/>**
Xyz Value1 Value1 Value1 <br/>
Xyz Value2 Value2 Value2<br/>
Lmn Value1 Value1 Value1<br/>
Lmn Value2 Value2 Value2<br/>
Xyz Value1 Value1 Value1<br/>
Lmn Value1 Value1 Value1<br/>
Das Ergebnis der Abfrage sollte wie folgt Aussehen. Wo nur die primären Spalten unterschiedliche Werte betrachtet werden müssen, und alle anderen Spalten können entweder unterscheiden oder nicht unterscheiden. Jeder eine Zeile der unterschiedliche Wert der primären Spalte nur angezeigt werden soll.
(This is the output I am trying to achieve)<br/>
**Prmrycolumn Column1 Column2 Column3<br/>**
Xyz Value1 Value1 Value1<br/>
Lmn Value1 Value1 Value1<br/>
Den code unten gibt die folgende Ausgabe
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("primarycolumn", "column1");
query.Distinct = true;
EntityCollection result1 = serviceProxy.RetrieveMultiple(query);
**Primary column Column1**<br/>
Xyz Value1<br/>
Lmn Value1<br/>
Aber wie ich mehrere Spalten hinzufügen, um die ColumnSet geben, der Ausgang ist angesichts unterschiedlicher Werte von anderen Spalten auch
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("primarycolumn", "column1", "column2");
query.Distinct = true;
EntityCollection result1 = serviceProxy.RetrieveMultiple(query);
**Primary
column Column1 Column2 Column3<br/>**
Xyz Value1 Value1 Value1<br/>
Xyz Value2 Value2 Value2<br/>
Lmn Value1 Value1 Value1<br/>
Lmn Value2 Value2 Value2<br/>
ctually, der code ist in C#. Die Tabelle unten zeigt die Tabelle die ich Abfragen
**Primary
column Column1 Column2 Column3<br/>**
Xyz Value1 Value1 Value1 <br/>
Xyz Value2 Value2 Value2<br/>
Lmn Value1 Value1 Value1<br/>
Lmn Value2 Value2 Value2<br/>
Xyz Value1 Value1 Value1<br/>
Lmn Value1 Value1 Value1<br/>
Das Ergebnis der Abfrage sollte wie folgt Aussehen. Wo nur die primären Spalten unterschiedliche Werte betrachtet werden müssen, und alle anderen Spalten können entweder unterscheiden oder nicht unterscheiden. Jeder eine Zeile der unterschiedliche Wert der primären Spalte nur angezeigt werden soll.
(This is the output I am trying to achieve)<br/>
**Prmrycolumn Column1 Column2 Column3<br/>**
Xyz Value1 Value1 Value1<br/>
Lmn Value1 Value1 Value1<br/>
The below code gives the following output
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("primarycolumn", "column1");
query.Distinct = true;
EntityCollection result1 = serviceProxy.RetrieveMultiple(query);
**Primary column Column1**<br/>
Xyz Value1<br/>
Lmn Value1<br/>
Aber wie ich mehrere Spalten hinzufügen, um die ColumnSet geben, der Ausgang ist angesichts unterschiedlicher Werte von anderen Spalten auch
QueryExpression query = new QueryExpression("entityname");
query.ColumnSet.AddColumns("primarycolumn", "column1", "column2");
query.Distinct = true;
EntityCollection result1 = serviceProxy.RetrieveMultiple(query);
**Primary
column Column1 Column2 Column3<br/>**
Xyz Value1 Value1 Value1<br/>
Xyz Value2 Value2 Value2<br/>
Lmn Value1 Value1 Value1<br/>
Lmn Value2 Value2 Value2<br/>
- Können Sie erklären, ein bisschen mehr auf das, was Sie sind versuchen zu tun? Wenn Sie Abfragen, indem Sie eine primary key, warum sollten es mehrere Werte eines Datensatzes? sind Sie auf Abfragen, die durch eine foreign key? in dem Fall letzteres ist richtig, wie die Ergebnisse anders sind als Spalte 1 und 2 unterschiedlich sind? Ich sehe auch nicht ein, einen filter auf die Abfrage zu filtern, indem die Fremd - / Primärschlüssel. Können Sie nach dem aktuellen code?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Editierte Antwort:
Den genannten Anforderungen nicht möglich mit der RetrieveMultiple-service-Aufruf. Was du im Grunde fragst, ist eine Methode zum abrufen der erste Datensatz für jeden Datensatz einen eindeutigen primären Spalte. Dies könnte möglich sein, mit Hilfe einer generierten Frühen Gebundenen Entitäten, aber es ist nicht möglich, mit dem standard-service-Methoden allein.
Zu erreichen, was Sie nach sind, müssen Sie zum abrufen aller Datensätze ist, was Ihre aktuelle Abfrage:
Sobald diese Daten eingegangen, müssen Sie die filter alle Datensätze, die Sie ignorieren möchten. In Ihrem Fall, Sie möchten, dass nur der erste Datensatz gefunden. Dies erreichen Sie mithilfe von C# - code wie folgt: