gpt4 book ai didi

c# - 如何使用 LINQ to SQL 类的 PropertyChangedEventHandler 进行即时更新?

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:13 25 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我实现了 LINQ to SQL 查询,该查询填充与 ListView 连接的 Observable 集合。正是在这个方法中,我可以从某个地方调用它,它工作正常:

private void VisualizeAllShows()
{

MyfirstdbDataContext context = new MyfirstdbDataContext();
_ShowQuCollection.Clear();

var sh = from p in context.Shows select p;

foreach (var p in sh)
_ShowCollection.Add(new ShowsQu
{
Date = p.Date,
Time = p.Time,
Description = p.Description
});
}

现在我需要在数据库表数据更改时自动进行此更新。

我是否应该为此目的在我的 LINQ to SQL 类中使用此公共(public)事件:

public event PropertyChangedEventHandler PropertyChanged;

如果是这样,请问如何使用会因数据更改而触发的事件处理程序?如果不是,我应该在哪里寻找正确的方法来做到这一点?

最佳答案

据我所知,数据库引擎不会通知您的应用程序对 SQL 服务器上的表进行更新。最好的办法是在 SQL Server 上使用 CLR 集成来添加它,请参阅#3。

这些是我能想到的选项:1.轮询变化通过反复查询数据库来检查变化。2. 我已经看到用于此的 SqlCacheDependancy,但从我读到的内容来看,它是 CPU 密集型的。3. 将 CLR 程序集添加到在触发器中实现了代码的 SQL Server,以便更新然后运行 ​​.NET 代码,通知您的应用程序更新。如果你能让它工作,它可能是最有效的。我不确定在为 SQL Server 上的 CLR 集成编写 .NET 代码时有什么限制。 IE。它是否会让您连接到外部应用程序。您的通信方式可能因任何网络技术、TCP/IP、WCF、远程处理等而异。

关于c# - 如何使用 LINQ to SQL 类的 PropertyChangedEventHandler 进行即时更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1991455/

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