gpt4 book ai didi

wpf - 什么可能导致 db.SubmitChanges() 在 linq-to-sql 中不起作用?

转载 作者:行者123 更新时间:2023-12-01 07:13:56 25 4
gpt4 key购买 nike

我在 WPF 中使用 LINQ-TO-SQL 设置了一个非常简单的示例。

我可以像这样得到一个 object (pageItem),我可以更改 property,当我调用 SubmitChanges() 时,它会给出我没有错误,但它不保存更改。

MainDataContext db = new MainDataContext();
var pageItem = (from p in db.PageItems
where p.Id == 1
select p).SingleOrDefault();

pageItem.Title = "changed";
db.SubmitChanges();

什么可能导致 SubmitChanges 不提交更改?

更多信息:

这也不行,连db.ExecuteCommand都行不通,而且奇怪的是调试F11的时候并没有进入SubmitChanges()或者ExecuteCommand(),为什么我不能进入那些呢?

using (var db = new MainDataContext())
{
var pageItem = (from p in db.PageItems
where p.Id == 1
select p).SingleOrDefault();

pageItem.Title = "changed";
db.SubmitChanges();

db.ExecuteCommand("INSERT INTO PageItems (Title) VALUES ('this is the title')");


if (pageItem != null)
MainContent.Children.Add(new QuickForm(pageItem));

}

更多信息:

db.Log = Console.Out 给了我这个:

SELECT [t0].[Id], [t0].[IdCode], [t0].[Title], [t0].[Description], [t0].[DisplayOrder]
FROM [dbo].[PageItems] AS [t0]
WHERE [t0].[Id] = @p0
'TestPageManager23434.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\PresentationFramework.resources\3.0.0.0_de_31bf3856ad364e35\PresentationFramework.resources.dll'
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [1]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1

INSERT INTO PageItems (Title) VALUES ('this is the title')
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.1

The thread 0x1190 has exited with code 0 (0x0).

回答

解决方案有三个:

  • 我正在更改一个不同于我在 Visual Studio 中查看的数据库,解决方案:

    var db = new MainDataContext(@"C:\Users\TestUser\Documents\Visual Studio 2008\Projects\TestPageManager23434\TestPageManager23434\Data\Main.mdf"))

  • 使 Update 起作用但 SubmitChanges() 不起作用,解决方案是设置主键。

  • 它仍然没有显示所有的变化,问题是我打开了许多“显示数据”窗口,这些窗口没有更新

最佳答案

如果您没有在 SQL Server 中的表上定义主键,则会发生这种情况

关于wpf - 什么可能导致 db.SubmitChanges() 在 linq-to-sql 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com