EF 6代码优先从数据库调用现有存储过程

本文关键字:调用 存储过程 数据库 代码 EF | 更新日期: 2023-09-27 17:59:47

我正在使用EF 6连接到现有的SQL数据库。我想为一些现有实体和非CRUD存储过程生成一个模型。在visual studio中,我添加了一个新的"ADO.NET实体数据模型",并为模型内容选择"数据库中的代码优先"。但是,我可以使用的数据库对象只有表和视图。存储过程不可用。这是故意的还是我遗漏了什么?

EF 6代码优先从数据库调用现有存储过程

您需要为每个存储过程定义一个DTO。您只需创建简单的类,其中类的属性名称与存储过程返回的列的名称相匹配。因此,当您从EF调用存储过程时,将构建并填充对象。表演很棒!这里我粘贴一个例子:

dbContext.Database.CommandTimeout = 3600;
List<CarsDTO> objs = dbContext.Database.SqlQuery<CarsDTO>(
         "spGetCars @carMakeId", new SqlParameter("carMakeId", id)
).ToList();