在实体框架 6 中保存分离的实体

2024-02-26

我读过很多关于在实体框架中保存分离实体的帖子。所有这些似乎都适用于旧版本的实体框架。它们引用了诸如ApplyCurrentValues和ChangeObjectState之类的方法,但这些方法似乎并不存在。一时兴起,我决定尝试一种通过智能感知找到的方法,我想确保这是正确的方法,因为我看不到幕后发生的事情:

public void SaveOrder(Order order)
{
    using (VirtualWebEntities db = new VirtualWebEntities())
    {
        db.Orders.Attach(order);
        db.Entry(order).State = System.Data.Entity.EntityState.Modified;
        db.SaveChanges();
    }
}

这是更新已更改的现有项目的正确方法吗?


是的,这是正确的。本文介绍了添加和附加实体的各种方法 http://msdn.microsoft.com/en-us/data/jj592676.aspx,它提供了这个例子:

var existingBlog = new Blog { BlogId = 1, Name = "ADO.NET Blog" };
using (var context = new BloggingContext())
{
    // The next step implicitly attaches the entity
    context.Entry(existingBlog).State = EntityState.Modified;
    // Do some more work...
    context.SaveChanges();
}

由于 EF 不知道哪些属性与数据库中的属性不同,因此它将全部更新:

当您将状态更改为“已修改”时,实体的所有属性都将被标记为已修改,并且在调用 SaveChanges 时所有属性值都将发送到数据库。

为了避免这种情况,您可以设置修改哪些属性 http://msdn.microsoft.com/en-us/data/jj592677手动而不是设置整个实体状态:

using (var context = new BloggingContext())
{
    var blog = context.Blogs.Find(1);
    context.Entry(blog).Property(u => u.Name).IsModified = true;     
    // Use a string for the property name
    context.Entry(blog).Property("Name").IsModified = true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在实体框架 6 中保存分离的实体 的相关文章

  • 在 C++ 中分割大文件

    我正在尝试编写一个程序 该程序接受一个大文件 任何类型 并将其分成许多较小的 块 我想我已经有了基本的想法 但由于某种原因我无法创建超过 12 kb 的块大小 我知道谷歌等上有一些解决方案 但我更感兴趣的是了解这个限制的根源是什么 然后实际
  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 当我单击 C# 中的“取消”按钮时重定向到新页面(Web 部分)

    Cancel button tc new TableCell btnCancel new Button btnCancel Text Cancel btnCancel Click new EventHandler btnCanel Clic
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • 使用 EF6 连接到 SQL Server

    在 EF5 之前 为了连接到 SQL Server 2012 我所需要做的就是指定一个如下所示的连接字符串 Data Source SqlExpress Initial Catalog MyDatabase Integrated secur
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 如何在 GCC 5 中处理双 ABI?

    我尝试了解如何克服 GCC 5 中引入的双重 ABI 的问题 但是 我没能做到 这是一个重现错误的非常简单的示例 我使用的GCC版本是5 2 如您所见 我的主要函数 在 main cpp 文件中 非常简单 main cpp include
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • 初学者使用 Linqpad 运行非常基本的 linq to sql 查询的步骤

    尝试使用 Linq 学习LinqPad http www linqpad net 并对如何开始感到沮丧 假设我想编写一个 C 表达式和一个 C 语句 其中 SQL Server 中有一个名为 Products 的表 并且我想提取价格大于 5
  • 使用 lucene/java 标记名称

    我有我公司所有员工的姓名 超过 5000 名 我想编写一个引擎 它可以在在线文章 博客 维基 帮助文档 中即时查找名称 并用用户电子邮件的 mailto 标签标记它们 截至目前 我计划从文章中删除所有停用词 然后在 lucene 索引中搜索
  • 手动修改 DOM 的 innerHTML 会停止 ReactJS 监听器

    我正在学习 ReactJS 和 Node Express 生态系统 对我来说是早期 我有一个基本的 ReactJS 文件 包括组件定义和渲染调用 它本身按预期工作 为了快速 轻松地进行调试 昨天我在客户端代码中进行了以下更改 Added H
  • 在运行时将设计时面板添加到 TabPage

    我希望在设计时有一个带有控件的面板 但我想在运行时将此面板添加到 TabControl 的所需 tabPage 中 我写了这样的东西 没有用 面板没有显示在选项卡页中 请帮我 panel2 Parent tabGuy TabPages 0
  • XPath - 提取两个节点之间的文本

    我的 XPath 查询遇到问题 我必须解析一个 div 它被划分为未知数量的 部分 其中每一个都由 h5 和部分名称分隔 可能的部分标题列表是已知的 并且每个标题只能出现一次 此外 每个部分可以包含一些 br 标签 所以 假设我想提取 Se
  • 尽管在 Windows 的 VS Code 中安装了字体并激活了连字,但仍无法显示 FiraCode

    在我的设置中我有 editor fontLigatures true editor fontFamily Fira Code Comic Sans MS Tahoma Consolas 我已经尝试过 根据this https github
  • 在 IIS7 中重写映射 — 如何使匹配项选择性地包含尾部斜杠?

    我已经阅读了几种组合的前 30 名 Google 搜索结果IIS rewrite map condition等等 但我在 microsoft com 网站或其他地方找不到任何像样的文档 我在 IIS7 中有一堆重写映射 我想处理它们 无论它
  • svn:ignore 的模式匹配字符

    在网上回应一个问题 svn ignore 模式的语法 记录在某处 唯一的图案 我可以在中找到匹配的字符 svn ignore 下的 SVN 书是 颠覆书 svn ignore http svnbook red bean com en 1 0
  • 使用php验证数字签名

    我有一封经过数字签名的电子邮件 email BEGIN PGP SIGNED MESSAGE Hash SHA1 The below email has been digitally signed for test purposes We
  • 从 PostgreSQL 检索原始通知文本

    我正在使用 PL pgSQL 尝试模拟我在 Oracle PL SQL 中可以执行的操作 其中 dbms output 相当于 stdout 我读过 RAISE NOTICE 可能是处理此问题的最佳方法 然而我的问题是 当我从 psycop
  • 可以从自定义模型绑定器访问数据库吗?

    假设我有一个对象 它从 HttpPost 获取一些数据 从数据库获取一些数据 我想我想允许 ModelBinder 访问数据库 存储库以获取帖子中丢失的数据 实际上 这是一个好主意还是坏主意 鉴于自 2010 年初以来我对这类事情的思考已经
  • Swift 5.4 十六进制转 NSColor

    我正在为 macOS 开发一个程序 我需要将十六进制颜色转换为 NSColor 我在这里查看了建议的解决方案 将十六进制颜色代码转换为 NSColor https stackoverflow com questions 8697205 co
  • EPPlus 中的隐藏列不起作用

    我想使用 EPPlus nuget 包隐藏 excel 中的一列 但它不起作用 它没有隐藏该列 这就是我发现应该能解决问题的方法 也许有一个错误 worksheet Column 1 Hidden true 我使用的是4 5 2 1版本 项
  • 以编程方式创建 XPath 表达式

    是否可以从网页上光标的位置自动生成最具体的 XPath 表达式 XPath 表达式将随着 onMouseMove 事件 而改变 如果可以的话 你会如何实施 或者它已经在某些地方实施了Javascript or Python图书馆 我更喜欢它
  • 不带空格的字符串长度 (C#)

    快点小问题 我需要计算字符串的长度 但不包括其中的空格 例如 对于像 I am Bob 这样的字符串 string Length将返回 8 6 个字母 2 个空格 我需要一种方法或其他东西来给我字母的长度 或数量 在 我是鲍勃 的情况下为
  • 文本中的句子注释不带标点符号

    我很难让 CoreNLP 系统正确找到诗歌语料库中一个句子的结束位置和另一个句子的开始位置 其陷入困境的原因 有些诗在整个长度上都没有标点符号 有时甚至没有大小写 有些诗的句子从一个段落延伸到另一个段落 有些诗每行开头都大写 这是一个特别棘
  • 我的 FreeMarker 方法返回一个带有 ${variable} 的字符串——如何强制 FreeMarker 解析它?

    我创建了一个类来实现模板方法模型Ex来自 FreeMarker 假装exec 函数返回一个字符串 你好 用户名 我将该类分配给数据模型中的一个方法 dataModel put myMethod myClassInstance dataMod
  • 如何从浏览器上传文件(附件)?

    我无法上传附件以使浏览器正常工作 一些提示是here http japhr blogspot de 2010 02 how to upload files in couchapp html 其他的there http comments gm
  • ResultSet.TYPE_SCROLL_SENSITIVE 的行为

    我对 a 的行为感到困惑ResultSet这是类型TYPE SCROLL SENSITIVE 我对此的理解是 我执行一个选择查询 返回一个结果集 我打印出第一行中特定列的值 然后我执行Thread sleep 10000 这会使程序暂停 1
  • 在实体框架 6 中保存分离的实体

    我读过很多关于在实体框架中保存分离实体的帖子 所有这些似乎都适用于旧版本的实体框架 它们引用了诸如ApplyCurrentValues和ChangeObjectState之类的方法 但这些方法似乎并不存在 一时兴起 我决定尝试一种通过智能感