如何在实体框架6中调用存储过程(代码优先)?

2023-11-24

我对 Entity Framework 6 非常陌生,我想在我的项目中实现存储过程。我有一个存储过程如下:

ALTER PROCEDURE [dbo].[insert_department]
    @Name [varchar](100)
AS
BEGIN
    INSERT [dbo].[Departments]([Name])
    VALUES (@Name)

    DECLARE @DeptId int

    SELECT @DeptId = [DeptId]
    FROM [dbo].[Departments]
    WHERE @@ROWCOUNT > 0 AND [DeptId] = SCOPE_IDENTITY()

    SELECT t0.[DeptId]
    FROM [dbo].[Departments] AS t0
    WHERE @@ROWCOUNT > 0 AND t0.[DeptId] = @DeptId
END

Department class:

public class Department
{
    public int DepartmentId { get; set; }       
    public string Name { get; set; }
}

modelBuilder 
.Entity<Department>() 
.MapToStoredProcedures(s => 
s.Update(u => u.HasName("modify_department") 
               .Parameter(b => b.Department, "department_id") 
               .Parameter(b => b.Name, "department_name")) 
 .Delete(d => d.HasName("delete_department") 
               .Parameter(b => b.DepartmentId, "department_id")) 
 .Insert(i => i.HasName("insert_department") 
               .Parameter(b => b.Name, "department_name")));

protected void btnSave_Click(object sender, EventArgs e)
{
    string department = txtDepartment.text.trim();

    // here I want to call the stored procedure to insert values
}

我的问题是:如何调用存储过程并向其中传递参数?


您可以在您的存储过程中调用DbContext类如下。

this.Database.SqlQuery<YourEntityType>("storedProcedureName",params);

但是,如果您的存储过程返回多个结果集作为示例代码,那么您可以在 MSDN 上查看这篇有用的文章

具有多个结果集的存储过程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在实体框架6中调用存储过程(代码优先)? 的相关文章

  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 为什么调用非 const 成员函数而不是 const 成员函数?

    为了我的目的 我尝试包装一些类似于 Qt 共享数据指针的东西 经过测试 我发现当应该调用 const 函数时 会选择它的非 const 版本 我正在使用 C 0x 选项进行编译 这是一个最小的代码 struct Data int x con
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • 将两个或多个 Crystal Reports 合并为一个 PDF

    我有一个复选框列表 如果我选择两个或多个值 则 CheckBoxList SelectedValues 将作为参数一一传递 并且我想为每个 SelectedValue 生成 PDF 格式的 Crystal Report 并且我想将所有 Cr
  • onDestroy之后是否可以调用回调方法?

    在我的应用程序的最新版本中 一些用户遇到了我无法重现的崩溃 目前仅Samsung设备运行Lollipop遇到这个问题 但这可能只是巧合 在分析了堆栈跟踪和相关代码之后 我想我可能已经找到了罪魁祸首 为了测试我的假设 我将代码简化为下面的代码
  • 编写供国际使用的软件的最佳实践 (i18n)

    我正在寻求编写过国际通用软件的专家的意见 我想了解人们在每个逻辑软件层 数据 rdbms 业务 中间件 用户界面 所采用的最佳实践 谢谢你提供的所有帮助 Data 当您使用 UTF 8 时 请做好每个字符最多占用 3 个字节的准备 对于中文
  • 在 PyQt 中启动 new QThread() 时传递参数

    我有一个用 Python 编写的多线程应用程序 其中一个线程 照顾 GUI 另一个线程是工作线程 但是 工作线程有两个主要函数 或者说两个主要作业 我需要告诉运行函数到底要执行哪个作业 所以我的想法是在工作线程中创建一个运行函数 该函数将采
  • 如何从命令行获取 CSRF 令牌?

    我经常使用测试我的应用程序curl过去我不得不简单地用以下内容来概括我的观点csrf exempt 我真的不想这样做 因为我有一种讨厌的感觉 我会忘记在部署中这样做并享受一生的 CSRF 地狱 有没有办法让我使用 Django 的 shel
  • gnu 排序的意外结果

    当我尝试对以下文本文件 输入 进行排序时 test1 3 test3 2 test 4 用命令 sort input 输出正是输入 这是输出 od bc input 0000000 164 145 163 164 061 011 063 0
  • 以 2 的补码表示十六进制值

    我有一个字符串十六进制值 我需要用 2 的补码来表达它 string hx FF00 我所做的是将其转换为二进制 string h Convert ToString Convert ToInt32 hx 16 2 然后反转它 但我无法使用N
  • HttpContext.Current.User!= HttpContext.User?

    Is HttpContext Current User在全局 asax 中不一样HttpContext User在行动方法中 我为用户分配了一些角色 但他们似乎迷失了 下面的代码显示了正在发生的情况 当用户登录时 两个断言都会被命中 首先是
  • 在组件编辑器中获取字段的_当前_值? (Tridion 2011 SP1)

    我正在编写 保存 命令的扩展 基本上我想验证某些字段并显示一个弹出窗口 允许编辑器根据当前日期 发布号和一些其他属性选择给定的关键字或其他值 我以为我取得了很好的进步 直到我最终发现 display getItem 返回存储在 CM 中的项
  • 如何获取传递给函数的变量的名称?

    让我用下面的例子来解释我的问题 public string ExampleFunction string Variable return something string WhatIsMyName Hello World string He
  • 从 Jupyter 笔记本中删除空行

    有没有一种简单的方法可以从 IPython 笔记本中删除空行 我在网络开发中养成了留空行的习惯 而且我的手指往往会自动按回车键 这使得 IPython 笔记本变得更少 因为占用了我的 14 英寸屏幕的太多空间 并且在大多数情况下并不更具可读
  • 仅当参数不是常量时,math.h 中的 sqrt 才会导致链接器错误“未定义对 sqrt 的引用”

    我创建了一个小程序 如下 include
  • android 以编程方式清除日志

    我想在按下按钮来分析我们应用程序的某些部分 计算一些内容 后获取整个日志 Log d 我可以通过以下代码来做到这一点 HashMap
  • Google 容器引擎中的自动缩放

    据我了解 容器引擎目前处于 alpha 阶段 尚未完成 从文档中我假设 Pod 还没有自动缩放 例如 取决于 CPU 负载 对吗 我希望能够配置一个复制控制器 以便在平均 CPU 负载达到定义的阈值时自动添加 Pod 和 VM 实例 这是近
  • 如何避免 ViewModel 中的命令混乱?

    我正在构建一个使用相当多命令的应用程序 它们使我的视图模型变得混乱 MVVM 对我来说是新的 如果这个问题有点愚蠢 我很抱歉 有没有办法减少混乱 例如 在这里您可以看到杂乱的一部分 private void InitializeComman
  • 获取推送通知的设备令牌

    我正在研究推送通知 我编写了以下代码来获取设备令牌 BOOL application UIApplication application didFinishLaunchingWithOptions NSDictionary launchOp
  • WebGL:尽管使用相同的代码,一切都很模糊

    刚开始使用 WebGL 尝试绘制一些基本线条 甚至不是多边形 我找到了一些例子 将它们复制粘贴到本地并在 Firefox 中运行它们 它们看起来不错 锐利 清晰的边缘 然后 我创建自己的项目 重构 糟糕 示例代码 使用 RequireJS
  • HighCharts通过ajax加载数据

    在过去的几天里 我在使用 Highcharts 库填充来自 api 的一些示例 json 数据中的 ajax 时遇到了问题 我尝试在我的ajax回调中使用chart series 0 data json和类似的东西 但没有任何效果 我的 j
  • getCompatedStyle 给出“透明”而不是实际的背景颜色

    这是一个惊喜 以下代码似乎没有给我屏幕上的实际颜色 h1 document querySelector h1 window getComputedStyle h1 color Gives rgb 0 0 0 我认为这是正确的 然而 wind
  • 如何在实体框架6中调用存储过程(代码优先)?

    我对 Entity Framework 6 非常陌生 我想在我的项目中实现存储过程 我有一个存储过程如下 ALTER PROCEDURE dbo insert department Name varchar 100 AS BEGIN INS