例如:
我有一堂课
MyClass //Dirty code
{
public int Id;
public string Name;
}
我在 DB 中有一个带有 Id 和 Name 字段的表。我可以将 MyClass 对象的 ObservableCollection 绑定到这个数据库表吗?如何做到这一点?另外我想在 ObservableCollection 中进行更改,并且更改必须在 DB 中进行镜像。
如果数据更改,数据库不会自动更新您的应用程序,如果您的应用程序更改值,它也不会写回数据库。实现您所追求的最基本方法是轮询服务器以按设定的时间间隔检查更改并从那里更新屏幕。
如果您使用的是 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 ...
}