ich eine Reihe von verschiedenen Datenquellen, die ich brauche, um meine alle Anfragen abzufragen und in der Lage gewesen zu tun zu beschränken. Ein Beispiel für eine typische Komplexität meiner Lamba Ausdrücke ist:Drehen sehr einfach Expression <Func <T, bool>> in SQL where-Klausel
b => b.user == "joe" && b.domain == "bloggs.com"
Auf meinen Nicht-SQL-Datenquellen Ich bin ok, wie ich sie konvertieren kann Listen Objekt und eine LINQ-Abfrage wie verwenden:
public override T Get(List<T> assets, Expression<Func<T, bool>> whereClause)
{
return assets.Where(a => whereClause.Compile()(a)).FirstOrDefault();
}
Mein Problem ist, wenn ich eine relationale Datenbank abfragen muss - ich bin nur wirklich mit Postgresql und MySQL beschäftigt - ich habe ein bisschen gekämpft. Ich habe nHibernate zu Linq "funktioniert", aber hatte einige Probleme, wo es stoppt und den Zugriff auf die Datenbank oder kann nicht schließen Verbindungen, typische Dinge von etwas in der Beta zu erwarten, so beschwere ich mich nicht.
Da meine Abfragen so einfach sind und ich bin froh, das SQL selbst zu erstellen, würde ich gerne wissen, ob es eine relativ schmerzlose Möglichkeit gibt, meine Ausdrücke in SQL-Where-Klauseln umzuwandeln.
Ich hatte eine schnelle Suche und fand einige Beispiele und natürlich gibt es bereits einige Linq-to-SQL-Engines, also weiß ich, dass es getan werden kann. Die Frage ist, ob es etwas ist, was ich an einem Tag oder weniger Aufwand aufbringen kann? Ich würde sagen, dass ich eine kompatible Linq-to-SQL-Bibliothek finden und den Test testen würde, vorausgesetzt, es funktioniert einwandfrei. Ich habe große Leistungsüberlegungen, so dass rohe SQL für mich vorzuziehen ist, anstatt durch ein ORM zu laufen.
Haben Sie eine LINQ-Provider aufbauen wollen oder nur Lambda konvertieren where-Klauseln in SQL? –
Ich möchte einfach einfache Where-Klauseln erstellen. Ich möchte keinen LINQ-Anbieter aufbauen, von dem ich weiß, dass es ein ernstes Unterfangen ist. – sipwiz