【发布时间】:2020-06-11 23:28:38
【问题描述】:
以下是对象结构。
public class User{
public string Name{get;set;}
public IList<Address> Addresss {get;set;}
...
}
public class Addresss{
public string Street {get;set;}
...
}
使用 Dapper,如何编写它来检索用户以及地址列表以及使用存储过程调用。
试着打电话给DbConnection.QueryAsync<User>("storedprocedure",param:null,commandType:CommandType.StoredProcedure)
存储过程查询如下,
Select u.*,a.* from user u join address a on u.Id = a.UserId
预期结果为用户列表,其中 User.Address // 应填充相关地址列表。
【问题讨论】:
-
您只需将存储过程名称替换为查询文本,然后将 commandType 参数设置为 CommandType.StoredProcedure
-
所以你写了一个存储过程和call it from Dapper?我错过了什么吗?
-
如何映射用户和地址?
-
从上面给出的链接,它可以使用
cnn.Execute("spMagicProc", p, commandType: CommandType.StoredProcedure);来完成,但是,如何获取用户和地址的映射?是手动迭代和映射吗? -
你能显示你的存储过程的代码吗?这两个数据表是如何关联的?两个表上都有某种 PK FK 关系,例如 UserId 来定义哪些地址属于特定用户?