【发布时间】:2011-11-30 15:42:14
【问题描述】:
可能重复:
Is it possible to declare an anonymous type in C# with a variable/dynamic set of fields?
我构建了一个查询构建器,它通过检查用户在我的 ASP.NET MVC3 应用程序中设置的一些 GET 值来构建查询。此查询构建器可以添加排序、限制和过滤(WHERE 子句),然后返回构造的查询。
然后,此查询将转到我的 Dapper 存储库,该存储库尝试使用以下命令执行查询:
using (IDbConnection connection = new MySqlConnection(ConnectionStringFactory.GetConnectionString(Database.Push)))
{
connection.Open();
return connection.Query<Notification>(query.QueryString,
new
{
someAnonymousStuffHere = SomeValue
});
}
但是,查询的参数(它是一个准备好的语句)需要放在匿名类型中。问题是:我不知道如何动态构造这个匿名类型。我现在所做的是将所有参数推送到查询构建器中的 Dictionary
我不能只在我的查询构建器中定义一个匿名类型,因为该构建器由几个步骤组成,其中一些没有被执行。所以有时我们有 5 个参数,有时我们有 3 个参数,等等。
我希望我能清楚地解释我的问题。
【问题讨论】:
-
你打算如何处理这个在编译时你不知道成员的匿名类型?
-
匿名类型进入 Query 方法,这可能会将参数映射到查询中的正确占位符。
标签: c# .net asp.net asp.net-mvc-3