C# 继承
我写了几个类,第一个:
public class AjaxDataHandle
{
...
DbOperator db= Factory.GetDbOperator();
string sql="SELECT CLassId,ClassName FROM Class"
DataTable dt=db.ExecRetDT(sql);
}
第二个:
public class AjaxStudentHandler
{
...
DbOperator db= Factory.GetDbOperator();
string sql="SELECT CLassId,ClassName FROM StudentDossier"
DataTable dt=db.ExecRetDT(sql);
}
等
现在想写一个基类的形式,让以上都的两个类,都继承基类的一个属性DbName,这个值由Session获得,如何写?
这样做的目的是:以前写的方法都是针对一个数据库,现在想实现操作多个数据库的模式,就想着给每个方法添加一个数据库名称的变量。
最后达到的效果是:
public class AjaxDataHandle: Base
{
string dbName=Base.DbName;
DbOperator db= Factory.GetDbOperator(dbName);
string sql="SELECT CLassId,ClassName FROM StudentDossier"
DataTable dt=db.ExecRetDT(sql);
}
继承 c# 类 --------------------编程问答--------------------
public abstract class BaseDB--------------------编程问答-------------------- 业务实体不要跟不要关系数据库纠结在一起,应该分开。AjaxDataHandler类型的对象可以放到哪一个数据库中,或者是放到文件中,或者发个短信给中移动给你保存起来这个对象,都是无所谓的。
{
public string DataBaseName {get;set;}
public abstract void GetName(string dbName)
{
}
}
public class AjaxDataHandle: BaseDB
{
public abstract void GetName(string dbName)
{
this.DataBaseName=dbName;
}
public DataTable GetTableList(string sql)
{
DbOperator db= Factory.GetDbOperator(this.DataBaseName);
DataTable dt=db.ExecRetDT(sql);
return dt;
}
}
如果需要配置,那么也是Attribuet的事情。例如
[DbName("AjaxTable1")]
public class AjaxDataHandle
{
string dbName=Base.DbName;
DbOperator db= Factory.GetDbOperator(dbName);
string sql="SELECT CLassId,ClassName FROM StudentDossier"
DataTable dt=db.ExecRetDT(sql);
}
这种元数据配置方式。
基本上没有谁让每一个实体对象来返回数据库名的。 --------------------编程问答-------------------- 晕死,你的这个 AjaxDataHandle 类型里边都是什么代码啊?
我竟然胡乱抄了你的这个代码。唉。
你可以看看什么SqlHelper之类的。人家直接给个sql语句,就能返回List<AjaxDataHandler>集合了。有了SqlHelpler,还用得着这种费劲的什么DAL代码? --------------------编程问答-------------------- 我是要实现同一个业务系统,多数据库的形式?
有点类似于用友的U8,多帐套,多个数据库。 --------------------编程问答-------------------- 这里不应该用继承,应该用IoC框架作注入。
当然如果你仅仅完成课堂的练习,学习下继承这种语法怎么写那你就随意吧。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
能不能请你按照我的想法,写个例子啊?谢谢!
补充:.NET技术 , ASP.NET