C# 实体框架从存储过程中获取select命令对象
我得到了一个简单的存储过程,它从一个大得多的表中返回几列,其中包含一个小的项 大概是这样的:C# 实体框架从存储过程中获取select命令对象,c#,sql-server,entity-framework,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;
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;}
}
在考虑实体框架的情况下,将对象连接到过程返回值的正确/最佳方法是什么
另外,我使用的是SQL Server、EF、C。当您使用EF时,您的存储实体将在您的解决方案中创建。您可以调用存储过程并转换为实体类型。这是一个示例方法
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<info>("spTemp", Type);
作为链接,您可以在VS中导入存储过程
并使用它们生成数据。您需要将存储过程导入模型。它将创建一个名为{sp name}\u Result的新复杂类型 您的查询不需要复杂类型,因此在该对话框中右键单击项目资源管理器中的函数“导入”来删除该类型。更改返回类型以返回相应的实体 完成后,您将在类中看到函数 然后,您可以通过以下方式运行该过程:
using (var context = new tempDBEntities())
{
var type = context.spTemp(1);
foreach (gType cs in gTypes)
Console.WriteLine(cs.gType);
}
我已经从这里的教程改编了这个,如果你能让它工作,请告诉我。我试图在实体框架中提高技能