我使用EF 6连接到现有的SQL数据库。我想为一些现有实体和非CRUD存储过程生成模型。从visual studio,我将添加一个新的“ADO.NET实体数据模型”,并为模型内容选择“Code First from Database”。但是,我可以使用的唯一数据库对象是表和视图。存储过程不可用。这是设计还是我错过了什么?
答案 0 :(得分:0)
您需要为每个存储过程定义DTO。您只需创建简单的类,其中类的属性名称与存储过程返回的列的名称相匹配。因此,当您从EF调用存储过程时,您的对象将被构建并填充。表现很棒! 我在这里粘贴一个例子:
dbContext.Database.CommandTimeout = 3600;
List<CarsDTO> objs = dbContext.Database.SqlQuery<CarsDTO>(
"spGetCars @carMakeId", new SqlParameter("carMakeId", id)
).ToList();