我想构建一个小的.net应用程序,它可以使用相同的数据更新多个数据库。 这将是某种自动应用。我有一些想法,但在开始开发之前,我正在寻找高级人员的一些想法。请分享您的观点。
感谢您的帮助。谢谢!!
答案 0 :(得分:0)
您可以使用DataSet
这些可以序列化,然后应用到另一个数据库。假设所有目标数据库都是同步的,这应该没有太多问题。但是,您必须避免使用存储过程和其他“交互式”数据库功能。
基本上,您将在脱机模式下使用数据集,然后将更改应用于“a”数据库。重复一遍,你将更新'''数据库。
请注意,您最有可能更好地使用某些数据库级复制(Mysql,Postgresql,Oracle,SQLServer都以这种或那种方式支持)
答案 1 :(得分:0)
从低级视图中,它应枚举所有目标数据库并保存对它们的更改。
从架构的角度来看,您应该考虑代理设计模式的使用。因此,您将在应用程序中使用抽象IDatabase
,但会随时从代理切换到单个数据库实现:
// database abstraction
interface IDatabase
{
void SaveSomeData(IData data);
}
// example of implementation
class SQLDatabase : IDatabase
{
public SQLDatabase(string connection)
{...}
abstract void SaveSomeData(IData data)
{
// establish db connection using given connection and run sql queries against it.
}
}
// proxy which can save data to several databases.
class DatabaseSaver : IDataBase
{
private IDatabase[] _databases;
public DatabaseSaver(IDatabase[] databases)
{
_databases = databases;
}
void SaveSomeData(IData data)
{
foreach(var db in _databases)
db.SaveSomeData(data);
// TODO: error handling situations are omitted.
}
}
我希望这有帮助!