提交 a09dcbd8 编写于 作者: S Sam Saffron

added massive with open connection

上级 3babf267
......@@ -123,6 +123,22 @@ public DynamicModel(string connectionString = "", string tableName = "", string
_factory = DbProviderFactories.GetFactory(_providerName);
_connectionString = connectionString;
}
public virtual List<dynamic> QueryHacked(string sql, DbConnection connection, params object[] args)
{
List<dynamic> list = new List<dynamic>();
using(var rdr = CreateCommand(sql, connection, args).ExecuteReader(CommandBehavior.Default))
while (rdr.Read())
{
var e = new ExpandoObject();
var d = e as IDictionary<string, object>;
for (var i = 0; i < rdr.FieldCount; i++)
d.Add(rdr.GetName(i), rdr[i]);
list.Add(e);
}
return list;
}
/// <summary>
/// Enumerates the reader yielding the result - thanks to Jeroen Haegebaert
/// </summary>
......
......@@ -97,6 +97,11 @@ public void Run(int iterations)
var massiveConnection = new DynamicModel(Program.connectionString);
tests.Add(id => massiveConnection.Query("select * from Posts where Id = @0", id).ToList(), "Dynamic Massive ORM Query");
// Massive was hacked a bit to support an open connection, the intention is to add this to the API at some point
var massiveConnection2 = new DynamicModel(Program.connectionString);
var hackedConnection = Program.GetOpenConnection();
tests.Add(id => massiveConnection.QueryHacked("select * from Posts where Id = @0", hackedConnection , id).ToList(), "Dynamic Massive ORM Query (hacked)");
// HAND CODED
......
......@@ -252,7 +252,7 @@ private static IDbCommand SetupCommand(IDbConnection cnn, SqlTransaction tranact
foreach (var info in paramInfo)
{
var param = new SqlParameter("@" + info.Name, info.Type);
param.Value = info.Val ?? DBNull.Value;
param.Direction = ParameterDirection.Input;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册