欢迎光临
我们一直在努力

实战 .Net 数据访问层 – 15-.NET教程,数据库应用

建站超值云服务器,限时71元/月

上面的示意图中,步骤7指向的remoting server就是host程序,

而remoting server包裹着的remotecustomer就是真正提供服务的数

据操作类。

以下所列代码即为该类的部分实现:

代码13:使用data access logic进行remoting调用 – 3,remotecustomer

public class remotecustomer: marshalbyrefobject

{

public remotecustomer() { }

public arraylist getallcustomers()

{

sqlconnection conn = new sqlconnection(

helper.getapplicationsetting("connectionstring"));

// 通过objectspaces获取所有customer数据

objectspace os = new objectspace(

helper.getapplicationsetting("mappingfile"), conn);

objectset ost = os.getobjectset(typeof(mycustomer), "");

// 以arraylist方式返回所有customer数据

// 注:当前版本中,objectset对象通过remoting进行传递有 bug

arraylist al = new arraylist(ost);

return al;

}

}

作者相信,在看完代码后,肯定有些朋友会产生这样的疑问:

代码13中的remotecustomer完成的也是我们前面分析过的

data access logic所能完成的工作,虽然当中隔了一层remoting,

但本质相同,难道就不能与代码11,12中的customerdal_orm进行

一次“有效重组”吗?

回答是肯定的!

不过,我们还是需要做两个非常简单的操作:

(1) 大家还记得代码9中的dalbase吗?只要我们令它从marshalbyrefobject继承(原先是默认的object),即可“轻松”解决这个问题!但也别高兴太早,一旦如此,所有其它的data access logic类也将不得不接受这“多余的馈赠”l,要知道,毕竟通过remoting进行data access logic操作的机会还不是很多(一般通过business logic即可解决问题),这样的“馈赠”并不是人人可以消受的(这也是作者并没在daf solution中这么实现的原因)!

(2)将上述remotecustomer的代码并入customerdal_orm中,但是,请注意:别忘了将方法名称改掉(因为已经有一个getallcustomers方法存在,虽然返回类型不同,但任何.net下的compiler都是无法区分这种差别的j)!

下一段:http://www.csdn.net/develop/read_article.asp?id=27559

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 实战 .Net 数据访问层 – 15-.NET教程,数据库应用
分享到: 更多 (0)