将存储过程结果映射到对象内部的对象
Map Stored procedure result to object inside an object
如果我有一个人 class 有狗 class 属性 :
public class Person{
public string Name {get;set;}
public Dog Doggie {get;set;}
}
在单个 SP 调用中,我想同时填充狗对象和人对象,但我不知道该怎么做。
CREATE PROCEDURE Test
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT
Name = p.Person_Name,
Doggie.Name (This fails) = d.Dog_Name
FROM My fancy join......
END
GO
public Person GetByUid(Guid uid)
{
Person personToReturn;
using (var connection = this.connectionFactory.GetOpenConnection())
{
try
{
personToReturn= connection.Query<Person>("ProcedureName",
new { personUid = uid },
commandType: CommandType.StoredProcedure).Single();
}
catch ()
{
return null;
}
}
return personToReturn;
}
可能吗?
使用 QueryMultiple,并在一个存储过程中写入 2 SELECT 个语句。
这里有一些帮助链接。
Dapper.NET and stored proc with multiple result sets
Multiple SQL statements in one roundtrip using Dapper.NET
如果我有一个人 class 有狗 class 属性 :
public class Person{
public string Name {get;set;}
public Dog Doggie {get;set;}
}
在单个 SP 调用中,我想同时填充狗对象和人对象,但我不知道该怎么做。
CREATE PROCEDURE Test
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT
Name = p.Person_Name,
Doggie.Name (This fails) = d.Dog_Name
FROM My fancy join......
END
GO
public Person GetByUid(Guid uid)
{
Person personToReturn;
using (var connection = this.connectionFactory.GetOpenConnection())
{
try
{
personToReturn= connection.Query<Person>("ProcedureName",
new { personUid = uid },
commandType: CommandType.StoredProcedure).Single();
}
catch ()
{
return null;
}
}
return personToReturn;
}
可能吗?
使用 QueryMultiple,并在一个存储过程中写入 2 SELECT 个语句。
这里有一些帮助链接。
Dapper.NET and stored proc with multiple result sets
Multiple SQL statements in one roundtrip using Dapper.NET