如何将 ObservableCollection 绑定到 SQL 表?可能吗

本文关键字:SQL 绑定 ObservableCollection | 更新日期: 2023-09-27 17:57:22

例如:

我有一堂课

MyClass //Dirty code
{
public int Id;
public string Name;
}

我在数据库中有一个带有 ID 和名称字段的表。我可以将 MyClass 对象的可观察集合绑定到此数据库表以及如何执行此操作吗?我还想在可观察集合中进行更改,并且更改必须在数据库中镜像。

如何将 ObservableCollection<T> 绑定到 SQL 表?可能吗

如果数据更改,数据库不会自动更新应用程序,如果应用程序更改值,数据库也不会写回数据库。实现您所追求的目标的最基本方法是轮询服务器以按设定的时间间隔检查更改并从那里更新屏幕。

如果您使用的是SQL Server,则可以查看CDC,这将有助于确定发生了哪些变化(如果有的话)。不过,这些都不是自动的,您每次都需要重新运行查询并执行相反的操作来写回。

我假设你正在使用WPF/Silverlight,所以可以使用这样的东西:

// Background timer used to refresh...
private DispatcherTimer _timer = null;
public MainViewModel()
{
    // Do initial load
    initializeload();
    // Start the timer to refresh every 100ms thereafter (change as required)
    _timer = new DispatcherTimer();
    _timer.Tick += Each_Tick;
    _timer.Interval = new TimeSpan(0, 0, 0, 0, 100);
    _timer.Start(); 
}
// Raised every time the timer goes off
private void Each_Tick(object o, EventArgs sender)
{
    // Refresh from database etc ...
    // Anything else you need ...
}