Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Dapper
提交
be18f157
D
Dapper
项目概览
int
/
Dapper
大约 1 年 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Dapper
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
be18f157
编写于
7月 19, 2011
作者:
S
Sam Saffron
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
multi mapper for grid has a serious bug ...
上级
b27a2e64
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
49 addition
and
1 deletion
+49
-1
Dapper/SqlMapper.cs
Dapper/SqlMapper.cs
+1
-1
Tests/Tests.cs
Tests/Tests.cs
+48
-0
未找到文件。
Dapper/SqlMapper.cs
浏览文件 @
be18f157
...
...
@@ -1390,7 +1390,7 @@ public IEnumerable<T> Read<T>()
},
gridIndex
);
try
{
foreach
(
var
r
in
SqlMapper
.
MultiMapImpl
<
TFirst
,
TSecond
,
DontMap
,
DontMap
,
DontMap
,
TReturn
>(
null
,
null
,
func
,
null
,
null
,
splitOn
,
null
,
null
,
reader
,
identity
))
foreach
(
var
r
in
SqlMapper
.
MultiMapImpl
<
TFirst
,
TSecond
,
TThird
,
TFourth
,
TFifth
,
TReturn
>(
null
,
null
,
func
,
null
,
null
,
splitOn
,
null
,
null
,
reader
,
identity
))
{
yield
return
r
;
}
...
...
Tests/Tests.cs
浏览文件 @
be18f157
...
...
@@ -341,6 +341,7 @@ class Post
public
int
Id
{
get
;
set
;
}
public
User
Owner
{
get
;
set
;
}
public
string
Content
{
get
;
set
;
}
public
Comment
Comment
{
get
;
set
;
}
}
public
void
TestMultiMap
()
{
...
...
@@ -978,5 +979,52 @@ public void TestInvalidSplitCausesNiceError()
// expecting an app exception due to multi mapping being bodged
}
}
class
Comment
{
public
int
Id
{
get
;
set
;
}
public
string
CommentData
{
get
;
set
;
}
}
public
void
TestMultiMapThreeTypesWithGridReader
()
{
var
createSql
=
@"
create table #Users (Id int, Name varchar(20))
create table #Posts (Id int, OwnerId int, Content varchar(20))
create table #Comments (Id int, PostId int, CommentData 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')
insert #Comments values(1, 1, 'Comment 1')"
;
connection
.
Execute
(
createSql
);
var
sql
=
@"SELECT p.* FROM #Posts p
select p.*, u.Id, u.Name + '0' Name, c.Id, c.CommentData from #Posts p
left join #Users u on u.Id = p.OwnerId
left join #Comments c on c.postId = p.Id
where p.Id = 1
Order by p.Id"
;
var
grid
=
connection
.
QueryMultiple
(
sql
);
var
post1
=
grid
.
Read
<
Post
>().
ToList
();
var
post2
=
grid
.
Read
<
Post
,
User
,
Comment
,
Post
>((
post
,
user
,
comment
)
=>
{
post
.
Owner
=
user
;
post
.
Comment
=
comment
;
return
post
;
}).
SingleOrDefault
();
post2
.
Comment
.
Id
.
IsEqualTo
(
1
);
post2
.
Owner
.
Id
.
IsEqualTo
(
99
);
connection
.
Execute
(
"drop table #Users drop table #Posts drop table #Comments"
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录