EF 6 Code First From Database - 调用现有存储过程

时间:2015-06-24 21:53:27

标签: c# sql-server entity-framework entity-framework-6

我使用EF 6连接到现有的SQL数据库。我想为一些现有实体和非CRUD存储过程生成模型。从visual studio,我将添加一个新的“ADO.NET实体数据模型”,并为模型内容选择“Code First from Database”。但是,我可以使用的唯一数据库对象是表和视图。存储过程不可用。这是设计还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

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

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