问题标签 [submitchanges]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
23776 浏览

linq - LINQ 未更新 .SubmitChanges()

有什么理由这样的事情不起作用吗?

这是我多次使用 LINQ 更新表中记录的逻辑:

(updateUser.InUse 是一个位域)

由于某种原因,它不起作用。当我检查 linq.log 时,它完全是空白的。

我的 .dbml 可能有问题吗?其他表似乎工作正常,但我比较了 .dbml 中的属性,它们都匹配。

就好像db.SubmitChanges(); 未检测到需要任何更新。

0 投票
1 回答
1634 浏览

linq-to-sql - 没有 .InsertOnSubmit(...) 的情况下插入 LINQ- 实体?

我在使用 LINQ 时遇到了一个有趣的问题。当我实例化一个实体时,在 DataContext 上调用 .SubmitChanges() 将在数据库中插入一个新行 - 而无需调用 .Insert[All]OnSubmit(...)。

运行上面的代码将在数据库中插入一个新行。我在编写应用程序来解析 XML 文件并填充一些表时注意到了这种效果。当我只期望大约 50 个左右时,我注意到有 1000 多个插入 - 然后我终于隔离了这种行为。

如何防止这些对象被隐式持久化?

谢谢,-查尔斯

0 投票
3 回答
1471 浏览

.net - 数据上下文 SubmitChanges() 退出代码无异常 - 在 iis5.1 上部署 .net mvc

我刚刚在 .NET MVC 中部署了我的第一个应用程序,但遇到了问题。

我已经解决了路由的 iis 5.1 问题(如果有人正在寻找这个,请到这里:http: //itscommonsensestupid.blogspot.com/2008/11/deploy-aspnet-mvc-app-on-windows-xp-iis。 html )

**现在我的问题是,无论我在我的数据上下文中调用 db.SubmitChanges() 的任何位置,它似乎都会阻止代码继续并且不进行更新。发布我的网站时是否缺少我的步骤?**

0 投票
7 回答
19989 浏览

c# - 如何从 LINQ DataContext.SubmitChanges() 获取 TSQL 查询

我正在使用 Linq to SQL。我有一个 DataContext,我正在针对它 .SubmitChanges()'ing。插入标识字段时出错,我想查看它用于插入此标识字段的查询。

我在快速监视中看不到查询本身;我在哪里可以从调试器中找到它?

0 投票
3 回答
704 浏览

vb.net - 在数据上下文中,插入的值在提交更改之前在数据上下文中不可用吗?

我正在浏览一篇文章和撰写文章的记者的 XML 文件。当我们将文章添加到 _Data 我们的数据上下文中时,我们可能会遇到需要添加的记者,所以我们这样做:

然而,随后我们可能会再次遇到同一个记者,但当我们这样做时没有返回任何内容:

所以它再次使用上面的代码再次插入同一个记者。

一旦我们所有的插入完成,我们就会做一个提交更改。在这一点上,它有一个头部适合:

INSERT 语句与 COLUMN FOREIGN KEY 约束“FK_articles_journalists_journalists”冲突。冲突发生在数据库'blah'、表'journalists'、列'id'中。该语句已终止。

通过查看 sql profiler 中生成的 sql,您可以看到它多次尝试添加一些记者,这将失败,因为名称必须不同。由于未更新该记者,随后试图插入这些记者的记录失败。

当然,如果我有一个记者收藏,添加一些,然后查看我的收藏,我应该看到所有这些,而不仅仅是原始的。我猜我可以通过提交更改来捏造它,但这似乎有点愚蠢。

提前致谢,

戴夫。

0 投票
2 回答
1801 浏览

c# - GetChangeSet ChangeSet、Linq 将应用什么顺序更改?

我正在运行代码以在 linq 提交更改调用之前获取更改集。

在“做某事”部分,我需要知道提交内容的顺序,以及它们将发布到数据库的顺序。我看到更改集有一个 .Inserted、.Updated 和 .Deleted。我假设这些是它们将被应用的顺序。但是我想知道总体顺序。我认为它可能是插入、更新,然后是另外 3 个插入,或者涉及在这些集合之间来回反弹的东西。

更新 1

对不起,以为标题很清楚,Linq to SQL

更新 2

我这样做的原因是稍后将这些重播到另一个数据库。

0 投票
2 回答
818 浏览

linq - 同时使用没有 TimeStamp 和 StoredProcedures 的 Linq SubmitChanges

我正在使用没有 rowversion 或时间戳的 Sql 表。但是,我需要使用 Linq 来更新表中的某些值。由于 Linq 无法知道要更新哪些值,因此我使用第二个 DataContext 从数据库中检索当前对象,并使用数据库和实际对象作为 Attach 方法的输入,如下所示:

虽然这确实有效,但我有一个问题:我还在某些时候使用 StoredProcedures 来更新 Customer 的某些字段。现在想象以下工作流程:

  1. 从数据库中获取客户
  2. 将客户字段设置为新值
  3. 使用存储过程更新另一个客户字段
  4. 调用 SaveCustomer

现在发生的情况是,SaveCustomer 方法从数据库中检索当前对象,该对象不包含代码中设置的值,但包含存储过程设置的值。当将它与实际对象附加然后提交时,它将更新数据库中代码中设置的值,并且... tadaaaa... 将另一个设置为 NULL,因为实际对象不包含由存储过程。

这可以理解吗?

有没有解决这个问题的最佳实践?

0 投票
1 回答
1396 浏览

linq - submitChanges() 在 linq 中插入不需要的记录的问题

我正在使用 LINQ 在数据库中插入记录。我创建这些记录并使用列表跟踪它们。基于一些逻辑,我通过从列表中删除来删除一些记录。(我正在使用相同的 DataContext 对象)。

当我想在数据库中插入记录时,我在 datacontext 对象上执行相应的 linq 表的 InsertOnSubmit(),然后是 SubmitChanges()。LINQ 也会插入已删除的列表记录以及列表中存在的记录。

例子:

我遇到了这篇 msdn 文章Object States and Change-Tracking (LINQ to SQL)

您可以使用 InsertOnSubmit 显式请求插入。或者,LINQ to SQL 可以通过查找连接到必须更新的已知对象之一的对象来推断插入。例如,如果将 Untracked 对象添加到 EntitySet(TEntity) 或将 EntityRef(TEntity) 设置为 Untracked 对象,则可以通过图中的跟踪对象访问 Untracked 对象。在处理 SubmitChanges 时,LINQ to SQL 会遍历跟踪的对象并发现任何未跟踪的可访问持久对象。这些对象是插入数据库的候选对象。

我想问题可以归结为——如何将已删除对象的状态更改为“未跟踪”?

从列表中删除对象后,我尝试了 DeleteOnSubmit,但这给出了异常(无法删除尚未附加的实体)。

有人可以指出我的解决方案吗?谢谢。

我想知道我是否可以仅使用 LINQ 来实现这一点。(我知道我可以使用存储过程并仅在列表中插入记录。)

0 投票
3 回答
3899 浏览

linq - 使用 LINQ-to-SQL 模拟 SQL 插入触发器

使用 LINQ-to-SQL,我想在插入父实体时自动创建子记录。基本上,模仿 SQL 插入触发器的工作方式,但在代码中,以便可以完成一些额外的处理。

父母与孩子有关联,但似乎我不能简单地在 DataContext 的SubmitChanges().

例如,

这将是理想的,但不幸的是,新创建的Child记录没有插入到数据库中。有道理,因为 DataContext 有一个对象/语句列表,并且可能不喜欢在其中添加新项目。

同样,拦截partial void InsertParent(Parent instance)DataContext 中的函数并尝试添加Child记录会产生相同的结果 - 没有错误,但没有任何内容添加到数据库中。

有没有办法在不向表示层添加代码的情况下获得这种行为?

更新:OnValidate()和函数 都是InsertParent()从 DataContext 的SubmitChanges()函数中调用的。InsertOnSubmit()我怀疑这是我正在尝试做的事情的固有困难- DataContext在将现有更改提交到数据库的过程中不允许插入其他对象(例如通过)。

理想情况下,我希望将所有内容都保留在一个事务下,这样,如果在插入/更新期间发生任何错误,数据库中实际上不会发生任何变化。因此,我尝试模仿 SQL 触发器功能,允许通过对 DataContextSubmitChanges()函数的一次调用自动插入子记录。

0 投票
1 回答
3477 浏览

linq-to-sql - SQL server 上的 NText、Text 和 Image 的 LINQ 问题

预先道歉,因为这不是一个问题,而是一个解决方案 - 但需要大量搜索才能找到答案,谷歌并没有太多帮助,所以我想通过提供错误和帮助未来谷歌员工的解决方案。

使用 LINQ to SQL 时,我在向数据表提交更改(第二次)时遇到了问题。我第一次提交更改一切正常,第二次提交更改我收到一个 SQL 异常,它说:

当我调用 SubmitChanges() 时引发了异常,但由于 LINQ 的延迟加载,它实际上出现在我调用 Refresh(RefreshMode.KeepCurrentValues, myObject) 时的前一行中。