【问题标题】:Map Stored procedure result to object inside an object将存储过程结果映射到对象内的对象
【发布时间】:2015-02-11 20:37:00
【问题描述】:

如果我有一个具有 Dog 类属性的 Person 类:

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;
}

有可能吗?

【问题讨论】:

  • 您需要向我们展示您如何调用存储过程,以及如何将其返回映射到您的 Person 类属性。

标签: c# sql sql-server stored-procedures dapper


【解决方案1】:

使用 QueryMultiple,在 ONE 存储过程中编写 2 条 SELECT 语句。

这里有一些帮助链接。

Dapper.NET and stored proc with multiple result sets

Multiple SQL statements in one roundtrip using Dapper.NET

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2014-02-11
    相关资源
    最近更新 更多