实体框架从存储过程中获取select命令对象

时间:2017-02-23 12:44:37

标签: c# sql-server entity-framework

我有一个简单的存储过程,它从一个更大的表中返回一些带有小项的列。

这样的事情:

CREATE PROCEDURE spTemp @Type nvarchar(25)
AS
    SELECT DISTINCT gType, gYear, gModel
    FROM MyTableOnDB
    WHERE gType = @Type
GO

我还有一个对象来填充数据。类似的东西:

public class info
{
   public string Type {get; set;}
   public string Model {get; set;}
   public int year {get; set;}
}

将对象连接到具有Entity Framework的过程的返回值的最佳方法是什么?

P.S。我正在使用SQL Server,EF,C#。

2 个答案:

答案 0 :(得分:0)

作为链接source code,您可以导入VS中的存储过程 并使用它们来生成数据。

答案 1 :(得分:0)

您需要将存储过程导入模型中。它将创建一个名为{sp name} _Result。

的新复杂类型

您不需要查询的复杂类型,因此通过右键单击此对话框中项目资源管理器中的函数导入来删除它,更改返回类型以返回相应的实体。

完成后您将在课程中看到该功能。

然后您可以通过以下方式运行该程序:

using (var context = new tempDBEntities())
{
    var type = context.spTemp(1);

    foreach (gType cs in gTypes)
        Console.WriteLine(cs.gType);
}

我已经从这里的教程中对此进行了调整,如果你让它工作,请告诉我。我试图提升实体框架。

http://www.entityframeworktutorial.net/stored-procedure-in-entity-framework.aspx