首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >插入并选择所有数据实体框架和SP

插入并选择所有数据实体框架和SP
EN

Stack Overflow用户
提问于 2017-10-17 02:37:22
回答 1查看 46关注 0票数 0

我有一个在表格中插入数据的sp。表中有pk_id、doc_id等字段。插入后,我想获取基于doc_id的所有记录

代码语言:javascript
运行
复制
ALTER PROCEDURE [dbo].[insertTable]
    @doc_id int
    ,......
AS
BEGIN

// Insert
INSERT INTO [dbo].[Table]
       (
            doc_id
           ,..........
       )
 VALUES
       (
            @doc_id
           ,.......
       )           

// Select all records based on doc_id 
select * from [dbo].[Table] where doc_id = @doc_id

END

创建SP之后,我用这个Sp更新了我的EF模型。在我的context.cs文件中,我发现返回类型是int,如果我的SP只是insert,这是有意义的。

我遵循了this的文章,使用复杂类型和函数导入来更改返回类型。但是当我尝试“获取列信息”时,我得到了这样的消息:“选定的SP或函数不返回任何列”

我想要像this这样的东西,而不是在第一个int和第二个列表中返回两个列表。

我需要在代码中进行哪些更改

下面是我在控制器中调用sp的方法

代码语言:javascript
运行
复制
   List<Table> List = new List<Table>();

   using (Entities entities = new Entities())
       List = (entities.insertTable(1, ......)).ToList();

   var result = new { List = List != null ? List: new List<Table>()};
   return Json(result, JsonRequestBehavior.AllowGet);

但这是行不通的。我在List = (entities.insertTable(1,......)).ToList()中得到一个错误;我认为这是很明显的,因为我得到了两个结果集

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-10-17 03:24:27

您可以在dbcontext上调用Database.SqlQuery

代码语言:javascript
运行
复制
context.Database.SqlQuery<DtoType>("insertTable @param1",
     new SqlParameter("param1", 1));

您只需要为结果集提供一个DTO类型。在本例中为

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46776967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档