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

时间:2013-02-04 13:42:51

标签: c# sql

例如:

我有一个班级

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

我在DB中有一个带有Id和Name字段的表。 我可以将MyClass对象的ObservableCollection绑定到此DB表以及如何执行此操作吗? 此外,我想在ObservableCollection中进行更改,并且必须在DB中镜像更改。

1 个答案:

答案 0 :(得分:0)

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

如果您使用的是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 ...
}