我正在使用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,但是Name
和address
被填充。当我从SQL Server Management Studio执行存储过程时,它会返回预期的结果。
请澄清用户对象失败的原因,而不是在我的“详细信息”模式下使用名称,街道代替“用户”。由于名称已存在于详细信息模型中,因此我无法区分它是学生还是用户。
请建议一些方法来处理此返回的SQL Server表的多个结果集。
答案 0 :(得分:0)
我通过从存储库方法设置模型属性解决了我的问题。