提交 f97241e5 编写于 作者: S Sam

Merge pull request #22 from xps/master

Small but useful (I think) additions
......@@ -106,6 +106,11 @@ void AddClause(string name, string sql, object parameters, string joiner, string
seq++;
}
public SqlBuilder InnerJoin(string sql, dynamic parameters = null)
{
AddClause("innerjoin", sql, parameters, joiner: "\nINNER JOIN ", prefix: "\nINNER JOIN ", postfix: "\n");
return this;
}
public SqlBuilder LeftJoin(string sql, dynamic parameters = null)
{
......@@ -113,6 +118,12 @@ public SqlBuilder LeftJoin(string sql, dynamic parameters = null)
return this;
}
public SqlBuilder RightJoin(string sql, dynamic parameters = null)
{
AddClause("rightjoin", sql, parameters, joiner: "\nRIGHT JOIN ", prefix: "\nRIGHT JOIN ", postfix: "\n");
return this;
}
public SqlBuilder Where(string sql, dynamic parameters = null)
{
AddClause("where", sql, parameters, " AND ", prefix: "WHERE ", postfix: "\n");
......
......@@ -1741,6 +1741,19 @@ internal GridReader(IDbCommand command, IDataReader reader, Identity identity)
this.reader = reader;
this.identity = identity;
}
#if !CSHARP30
/// <summary>
/// Read the next grid of results, returned as a dynamic object
/// </summary>
public IEnumerable<dynamic> Read()
{
return Read<FastExpando>();
}
#endif
/// <summary>
/// Read the next grid of results
/// </summary>
......
......@@ -1138,6 +1138,38 @@ public void TestMultiMapThreeTypesWithGridReader()
connection.Execute("drop table #Users drop table #Posts drop table #Comments");
}
public void TestReadDynamicWithGridReader()
{
var createSql = @"
create table #Users (Id int, Name varchar(20))
create table #Posts (Id int, OwnerId int, Content varchar(20))
insert #Users values(99, 'Sam')
insert #Users values(2, 'I am')
insert #Posts values(1, 99, 'Sams Post1')
insert #Posts values(2, 99, 'Sams Post2')
insert #Posts values(3, null, 'no ones post')";
connection.Execute(createSql);
var sql = @"SELECT * FROM #Users ORDER BY Id
SELECT * FROM #Posts ORDER BY Id DESC";
var grid = connection.QueryMultiple(sql);
var users = grid.Read().ToList();
var posts = grid.Read().ToList();
users.Count.IsEqualTo(2);
posts.Count.IsEqualTo(3);
((int)users.First().Id).IsEqualTo(2);
((int)posts.First().Id).IsEqualTo(3);
connection.Execute("drop table #Users drop table #Posts");
}
public void TestDynamicParamNullSupport()
{
var p = new DynamicParameters();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册