用c#怎样能更好的做同时支持多个数据库,且跨不同的数据库?

uniteworld 2010-11-28 08:11:20
c#怎样能更好的做同时支持多个数据库:
比如用户系统一个数据库,业务子系统每个子系统一个数据库。

且跨不同的数据库:
支持oracle ,sql server,db2
...全文
410 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bu88dong 2010-11-29
  • 打赏
  • 举报
回复
记下、学习。
c2008200613 2010-11-29
  • 打赏
  • 举报
回复
学习了 不错
jiezi316 2010-11-29
  • 打赏
  • 举报
回复
.NET 2.0以上,已经为你实现了一个这玩意,请参考System.Data.Common 貌似就是这个命令空间哈。自己去查查。
mohugomohu 2010-11-29
  • 打赏
  • 举报
回复
首先把“操作不同数据库”这个需求抽象出来,也就是“操作数据库”,然后把“操作数据库”作为父类或者接口,然后做几个操作不同数据库的子类,在通过工厂模式生成不同的子类。


public interface IDataAccessor
{
bool ExecuteNonQuery(string sql);
DataTable Query(string sql);
DataTable Query(string sql, params object[] paras);
bool InsertEntity(IEntity entity);
IEntity GetEntity(IEntity entity);
bool UpdateEntity(IEntity entity);
bool DeleteEntity(IEntity entity);
object ExecuteScalar(string sql);
bool ExecuteStoreProc(string procName, params object[] paras);
List<T> GetList<T>(T entity,string sql) where T : new();
}


public IDataAccessor GetDataAccessor(AccessorType type,string connStr)
{
if (type == AccessorType.SqlServer)
{
if (string.IsNullOrEmpty(connStr))
{
return new SqlDataAccessor();
}
else
{
return new SqlDataAccessor(connStr);
}
}
else
{
throw new NotImplementedException("还没有实现!");
}
}


我也尝试做了一个,只是学习而已,感兴趣的可以看看,我的资源里面有
宝_爸 2010-11-29
  • 打赏
  • 举报
回复
应该是Repository模式吧

参考:
Repository模式

TireYang 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jilate 的回复:]

采用接口方式。
将各种数据库的操作用接口封装,具体看一下petshop结构

用工厂模式创建各个子系统的数据库访问类。
[/Quote]
+1
w5588660 2010-11-29
  • 打赏
  • 举报
回复
抽象工厂模式,你找下下实例看看,说的就是这情况
cjh200102 2010-11-29
  • 打赏
  • 举报
回复
楼上的观点都不错
快乐大法师 2010-11-29
  • 打赏
  • 举报
回复
用工厂模式模式啊
bloodish 2010-11-29
  • 打赏
  • 举报
回复
NHibernate + 动态配置Hibernate Configuration
不同数据库的实体类可以一样,hbm文件需要针对不同的数据库平台进行改写
raintree1119 2010-11-28
  • 打赏
  • 举报
回复
试试xml吧
jilate 2010-11-28
  • 打赏
  • 举报
回复
采用接口方式。
将各种数据库的操作用接口封装,具体看一下petshop结构

用工厂模式创建各个子系统的数据库访问类。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧