当实体映射到存储过程时,如何在调用 SaveChanges() 后获取实体的标识

2023-12-27

我们使用实体框架 4.0,并且有一个映射到 DBA 提供的存储过程的实体。映射详细信息中的插入、更新和删除函数都有自己的存储过程。

当使用映射到表的实体时,我可以添加新实体,调用dataContext.SaveChanges();然后我实例化的新实体会自动使用数据库中标识列的值填充其 ID 属性。

当实体映射到存储过程时如何实现这一点? INSERT 存储过程是否必须做一些特殊的事情和/或我必须做一些特殊的事情dataContext.SaveChanges();?

Example

传统方式

var newCustomer = new Customer
{
    Name = "Fred",
    Age = 24
};

// newCustomer.Id is null

dataContext.Customers.Add(newCustomer);
dataContext.SaveChanges()

// newCustomer.Id is what database identity column was set to.

映射到存储过程。

var newCustomer = new Customer
{
    Name = "Fred",
    Age = 24
};

// newCustomer.Id is null

dataContext.Customers.Add(newCustomer);
dataContext.SaveChanges()

// newCustomer.Id is null

如果您在数据库中使用标识列,请确保您的存储过程包含:

SELECT Scope_Identity() AS Id

打电话后INSERT

还要确保实体模式下的 PK 已正确配置StoreGeneratedPattern set to Identity(如果您使用过,应该是自动的从数据库更新)

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

当实体映射到存储过程时,如何在调用 SaveChanges() 后获取实体的标识 的相关文章

  • 在 DataGridView 中隐藏行非常慢

    我在 Winforms 应用程序中有一个 DataGridView 大约有 1000 行 未绑定 和 50 列 隐藏一列需要整整 2 秒 当我想隐藏大约一半的行时 这就成为一个问题 private void ShowRows string
  • 宏可以按参数数量重载吗?

    如何this https stackoverflow com q 9183993 153285工作 如何实现 C99 C 11 可变参数宏以仅根据为其提供多少个参数来扩展到不同的事物 编辑 请参阅末尾以获得现成的解决方案 要获得重载的宏 首
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • 无缝滚动瓷砖地图

    我正在开发一个自上而下的角色扮演游戏 并且想要实现无缝滚动地图 也就是说 当玩家探索世界时 地图之间没有加载屏幕 也没有通往下一个区域的 门 我有两种方法可以打破世界 在顶层 我有 区域 它只是 9 个 地图 的集合 这些区域仅由目录表示
  • 如何使用boost库读取和写入.ini文件[重复]

    这个问题在这里已经有答案了 如何使用boost库读取和写入 或修改 ini文件 With Boost PropertyTree您可以读取并更新树 然后写入文件 请参阅load and save功能 看一下如何访问属性树中的数据 http w
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • Qt QML 数据模型似乎不适用于 C++

    我一直在使用中的示例http doc qt digia com 4 7 qdeclarativemodels html http doc qt digia com 4 7 qdeclarativemodels html这是 QML 声明性数
  • ASP.NET MVC 路由 - 向路由添加 .html 扩展名

    我对 MVC 和路由非常陌生 我被要求修改一个应用程序以使用不同的 url 由于我没有经验 这项任务对我来说有点困难 好吧 让我们谈谈一些代码 routes MapRoute CategoryBySeName Route name prod
  • 使用 QGraphicsScene 实现流畅的动画

    我希望我的问题并不总是同样的问题 我有一个 QGraphicsScene 它的项目是一些 QGraphicsPixmap 我用一个计时器来移动它们 每秒 SetX 10 我设置 10是因为窗口大100 使用这个解决方案我的动画不流畅 我想我
  • 数组与映射的性能

    我必须循环一个大数组中的元素子集 其中每个元素都指向另一个元素 问题来自于检测大图中的连接组件 我的算法如下 1 考虑第一个元素 2 将下一个元素视为前一个元素所指向的元素 3 循环直到没有发现新元素 4 考虑1 3中尚未考虑的下一个元素
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 为什么我不能对普通变量进行多态?

    我是一名Java程序员 最近开始学习C 我对某事感到困惑 据我了解 在 C 中 要实现多态行为 您必须使用指针或引用 例如 考虑一个类Shape与实施的方法getArea 它有几个子类 每个子类都以不同的方式重写 getArea 然后考虑以
  • 字符串 c 的二叉树

    我正在尝试实现一个能够在 c 中保存字符串的二叉树 在让代码适用于整数之后 我尝试稍微修改它以处理字符数组 现在我似乎完全破解了代码 但不知道如何破解 任何帮助表示赞赏 include
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • 如何在 Winform DataGridView 中创建不同的单元格格式

    我有一个 DataGridView 我将其绑定到 DataTable DataTable 是一个全数字值 要求 DataGridView 中的每 n 行都包含文本 而不是数值 以便在视觉上为用户分隔部分 我很高兴在绑定后将此文本数据放入 D
  • 清理堆分配对象的良好实践或约定?

    我正在学习C 我有 C C ObjC 背景 相当高级的语言 在 C 或 ObjC 上 作为函数或方法的结果返回堆分配的对象是很简单的 因为对象的清理是受管理的 按照惯例 会在适当的时候销毁 但我不知道在 C 中应该如何处理这个问题 例如 s
  • Java有没有类似微软CHESS的工具?

    是否有类似于 Microsoft 的现有 Java 工具CHESS http research microsoft com chess 或者 CHESS 源代码是否开放 以便我可以尝试将其转换为 Java 谷歌的织线工 http code
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

  • 卷积神经网络 - 如何获取特征图?

    I read a few books and articles about Convolutional neural network it seems I understand the concept but I don t know ho
  • href 内有小胡子

    我有这样的 JSON something http something com 和 HTML 像这样 a href something something a 当我应用 Mustache 时 我得到 a href 7B 7Bsomethin
  • 如何从批处理文件中仅删除空目录

    有没有办法从批处理文件中删除给定目录下的所有空子目录 或者是否可以递归复制目录 但排除任何空目录 你确实有两个问题 1 有没有办法从批处理文件中删除给定目录下的所有空子目录 是的 这个一行 DOS 批处理文件对我有用 您可以传入模式 roo
  • 多线 lambda 比较器

    我从 Java 中的 lambda 表达式开始 有一些我认为很奇怪的东西 我确信我做错了什么或者它有解决方法 要定义比较器 我可以这样做 col setComparator CustomCell o1 CustomCell o2 gt Co
  • 我们最终可以在企业软件中转向 DVCS 吗? SVN 仍然是开发的“必备”吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 零大小 malloc [重复]

    这个问题在这里已经有答案了 非常简单的问题 我编写了以下程序 include
  • 实时查询/聚合数百万条记录 - hadoop?数据库?卡桑德拉?

    我有一个可以并行化的解决方案 但我 还 没有 hadoop nosql 的经验 并且我不确定哪种解决方案最适合我的需求 理论上 如果我有无限的 CPU 我的结果应该立即返回 因此 任何帮助将不胜感激 谢谢 这是我所拥有的 数千个数据集 da
  • 如何处理不停止线程的行为不良的库

    处理在库关闭时无法正确清理线程的第三方库时 有哪些解决方法 许多库显式或隐式地公开其中包含的代码的生命周期方法 例如 Web 应用程序框架存在于 Servlet 容器中的 Web 应用程序上下文中 创建上下文时 框架可能会出于各种原因启动一
  • 使用正则表达式检查字符串是否以辅音开头

    有没有更好的方法在 Ruby 中编写以下正则表达式 第一个正则表达式匹配以 小写 辅音开头的字符串 第二个正则表达式以元音开头 我试图弄清楚是否有一种方法可以编写与第二个表达式的负数匹配的正则表达式 而不是编写具有多个范围的第一个表达式 s
  • 有没有办法检测我是否将鼠标悬停在文本上?

    我真正想要的是检测光标何时更改为 文本 类型 即何时将鼠标悬停在一段文本上 我尝试查看我悬停的元素类型 但这不太准确 因为我不知道它们实际包含什么 据我所知 只有我之前指定了 CSS 光标属性 才可以检测到该属性 这有可能吗 你会怎样做呢
  • 简单的 Java 2d 数组迷宫示例

    我正在工作或了解如何创建一个简单的java 二维迷宫应该是这样的 int maze 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 0 1
  • 更改php版本后php网站无法运行

    我在 Ubuntu 13 04 环境中使用 php 我已经配置了 apache 以便在我的主目录中有一个public html我保存我正在处理的所有网站的目录 我可以通过以下方式访问它们localhost homedir website 以
  • 如何使CSS边框图像工作

    我的网站上有边框 我想在垂直菜单的顶部放置一个图像 在底部放置一个图像 在中间放置一个背景 但这不起作用 这是我的代码 border image border solid transparent 10px I tried with and
  • 如何在PowerShell中将环境变量打印到控制台?

    我开始使用 PowerShell 并试图弄清楚如何echo将系统环境变量发送到控制台来读取它 以下两者均不起作用 第一个只是打印 PATH 第二个不打印任何内容 echo PATH echo PATH 变量名前缀为env env path
  • 在 MacOS 上将 Vapor 编译为独立应用程序

    我想用我的代码将 Vapor 编译为 MacOS 应用程序 以便我可以将其放置在内部服务器上 拖动并单击以启动它 我不想在服务器上安装 Xcode swift 和其他开发文件 我是 Vapor 和 Swift 的新手 当我从 xCode 构
  • 多列上的 DISTINCT

    I have SELECT DISTINCT first second third FROM table 我不仅希望第一个是 DISTINCT 第二个是 DISTINCT 而且还希望第三个保持不 DISTINCT 我这样尝试过 SELECT
  • 使用 DataTrigger 的 .NET Maui 样式

    概述 我有两个属性 IsPast IsCurrentMonth 如果已经过去或者not当月我想用红色显示标签 以下代码是默认 Maui 应用程序的缩小版本 如果你运行它 你会得到红色标签 预期 单击一次后 它会保持红色 预期 但单击后会打开
  • 如何告诉 forfiles 执行 PATH 中的命令?

    我在以下 Windows Server 2k3 批处理命令中遗漏了一些有关转义字符串或空格的内容 明显 FORFILES m wsp c CMD C C Program Files Common Files Microsoft Shared
  • 禁用 cookie 的 PHP 会话是否有效?

    今天我参加了 Skype 面试 面试的是 PHP 开发人员的工作 其中一个问题是关于 Cookie 和 PHP 会话 问题是 如果用户浏览器中禁用了 Cookie PHP 会话是否可以设置 读取 使用 我告诉他们不是 因为默认情况下 PHP
  • 当实体映射到存储过程时,如何在调用 SaveChanges() 后获取实体的标识

    我们使用实体框架 4 0 并且有一个映射到 DBA 提供的存储过程的实体 映射详细信息中的插入 更新和删除函数都有自己的存储过程 当使用映射到表的实体时 我可以添加新实体 调用dataContext SaveChanges 然后我实例化的新