单个存储过程中的多个模型

时间:2019-12-26 15:01:13

标签: sql sql-server dapper

我正在使用SQL Server数据库和dapper。

作为单个存储库方法的一部分,我想从多个表中选择数据(请注意,我的两个表在相互关联的地方不存在关系)。

我有两个桌子

  • User:名称varchar(max),代码varchar(max),街道varchar(max)
  • Student:名称varchar(max),数字int,地址varchar(max)

我有一个名为GetDetails()的存储库方法,我想使用该存储库方法执行存储过程,并从单个方法中获取详细信息。

我的存储过程采用两个参数作为输入:

CREATE PROCEDURE GetDetails
    (@Code VARCHAR(MAX), @Number INT)
AS
    SELECT * FROM User WHERE code = @Code 
    SELECT * FROM Student WHERE number = @Number

我的存储库方法:

  • 执行上面显示的存储过程
  • 填写我的Details模型中的详细信息

详细信息模型如下:

public USER user { get; set; }
Public string Name { get; set; }
public string address { get; set; }

在调试时,它没有填充USER模型-它返回null,但是Nameaddress被填充。当我从SQL Server Management Studio执行存储过程时,它会返回预期的结果。

请澄清用户对象失败的原因,而不是在我的“详细信息”模式下使用名称,街道代替“用户”。由于名称已存在于详细信息模型中,因此我无法区分它是学生还是用户。

请建议一些方法来处理此返回的SQL Server表的多个结果集。

1 个答案:

答案 0 :(得分:0)

我通过从存储库方法设置模型属性解决了我的问题。

相关问题