Frage

Ich habe eine LINQ to SQL-Datacontext, die eine Beziehung Eltern-Kind zu den Preisen von Produkten darstellt. Ich Iterieren durch eine Liste der Produkte und die Preise für jeden abruft. Das Problem ist, dass die Tische hinter beiden Produkte und Preise eine Liste der Produkte enthalten oder Preise für mehrere Umgebungen, mit einem komplexen Schlüssel-3-Feld bestimmt. Ich möchte nur eine dieser Umgebungen, die Produkte und Preise abzurufen.

kann ich das eine lange Angabe, wo Klausel in jeder LINQ-Abfrage des Produktschlüssel aus und der komplexen Umgebung Schlüssel, so etwas wie folgt aus:

var price = ( from condition in conditiontype where condition.MaterialNumber == material && condition.Client == "400" && condition.SalesOrg == "1000" && condition.DistributionChannel == "10" select condition.ConditionDetails[0].ConditionValue );

, was ich möchte in der Lage sein zu tun, ist der Kunde angeben, SalesOrg und DistributionChannel global für das Datacontext, so dass alles, was ich in der Abfrage angeben müssen sich die Produkt-ID ist (Materialnummer). So, wenn ich beginnen unsere Produktionsumgebung eine einfache Änderung an der Datacontext-Abfrage wird sich ändern in welcher Umgebung ich abfragt.

Ist das möglich? Entweder ein kurzes Codebeispiel oder Zeiger auf den Hintergrund der Theorie wäre wunderbar!

War es hilfreich?

Lösung

Sie können eine bereits geschriebene Expression<T>, die Sie dann diese Werte in ihm haben:

public Expression<Func<int>> GetPrices = p => // do Lambda here

Alternativ können Sie die Eigenschaften in Ihre Datacontext setzen (denken Sie daran, es ist ein Teil Klasse so ist es leicht zu verlängern), die Sie festgelegt und werden dann durch Ihren Ausdruck lesen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top