Mögliches Duplikat:
Ist es möglich, einen anonymen Typ in C# mit einer variablen/dynamischen Menge von Feldern zu deklarieren?
Ich habe einen Query Builder erstellt, der eine Abfrage konstruiert, indem er einige GET-Werte prüft, die der Benutzer in meiner ASP.NET MVC3-Anwendung festgelegt hat. Dieser Query Builder kann Sortierung, Begrenzung und Filterung (die WHERE-Klausel) hinzufügen und gibt dann die konstruierte Abfrage zurück.
Diese Abfrage geht dann an mein Dapper-Repository, das versucht, die Abfrage mit auszuführen:
using (IDbConnection connection = new MySqlConnection(ConnectionStringFactory.GetConnectionString(Database.Push)))
{
connection.Open();
return connection.Query<Notification>(query.QueryString,
new
{
someAnonymousStuffHere = SomeValue
});
}
Die Parameter für die Abfrage (es handelt sich um eine vorbereitete Anweisung) müssen jedoch in einem anonymen Typ abgelegt werden. Das Problem ist, dass ich nicht weiß, wie ich diesen anonymen Typ dynamisch konstruieren kann. Was ich jetzt mache, ist, alle Parameter in ein Dictionary<string, string> im Query Builder zu schieben, wobei der Schlüssel der Name der Eigenschaft ist und der Wert, nun ja, der Wert ist.
Ich kann nicht einfach einen anonymen Typ in meinem Query Builder definieren, weil der Builder aus mehreren Schritten besteht, von denen einige nicht ausgeführt werden. So haben wir manchmal 5 Parameter, manchmal 3 Parameter, usw.
Ich hoffe, ich habe mein Problem klar genug erklärt.