13 c# stored-procedures entity-framework
我正在尝试从Entity Framework中的存储过程返回一个int列表.
我创建了存储过程很好,并将其添加到Entity Framework中.我正在尝试将它绑定到复杂类型,但是当我打开函数import时.
它会自动生成一个只返回int而不是结果集的复杂类型.
有谁知道如何导入一个返回列表作为结果集的实体?
joh*_*y 5 18
如果您只是想从存储过程中获取列表,则无需映射任何特殊内容.
就这样打电话:
var results = dbContext.Database.SqlQuery<int>("SP_YourSP").ToList();
Run Code Online (Sandbox Code Playgroud)
这应该返回一个int列表
mar*_*c_s 14
我创建了这个示例存储过程,返回一个int值列表:
CREATE PROCEDURE dbo.GetListOfInt
AS BEGIN
SELECT *
FROM
(VALUES (42), (4711), (8088), (80286), (80486), (655235)) AS VT(VC)
END
Run Code Online (Sandbox Code Playgroud)
然后我将此存储过程添加到我的EF .edmx
模型并创建了此函数导入:
查询存储过程向我显示它返回一个由int
值组成的结果集- 因此我在函数导入对话框中将返回值定义为Scalar:Int32的集合.
之后,我可以调用该存储过程并返回如下结果:
using (testEntities ctx = new testEntities())
{
ObjectResult<int?> result = ctx.GetListOfInt();
foreach (int intValue in result.AsEnumerable())
{
Console.WriteLine("INT value returned: {0}", intValue);
}
}
Run Code Online (Sandbox Code Playgroud)