当前位置: 代码迷 >> C# >> WCF访问数据库,这么做对不对
  详细解决方案

WCF访问数据库,这么做对不对

热度:75   发布时间:2016-05-05 02:41:06.0
WCF访问数据库,这样做对不对?
一个C/S程序,利用WCF服务访问数据库,一种是直接将在服务端查询的DataTable返回到客户端,一种是将SQL查询文本和数据库地址文本返回到客户端,由客户端自己查询。

请问,这两种方法,哪种好些呢?第二种会不会不安全呢?
我主要是想到有些情况是使用SqlDataReader逐行阅读,在本地要好操作些。
------解决思路----------------------
第二种方法没有什么必要吧。

如果是我的话,会把一些business logical 封装到WCF中。
------解决思路----------------------
第二种方法相对不安全是肯定的。
应该也违背了你使用WCF服务的初衷,无论是耦合性上,还是安全性上。
另外还是耦合性上的问题,既然用了WCF服务,那就抽象了业务逻辑层,客户端也就不应该用SqlDataReader这种属于System.Data.SqlClient的东西。
返回DataTable? 我对WCF不熟,这貌似是WebService中常用的做法,WCF中不是用IEnumerable包装的DataContract来做逐行处理吗?
------解决思路----------------------
如果你要本地逐行读,那你还用wcf干嘛?还有wcf返回datatable你这是瞎扯,数据契约哪里去了,别把wcf当ws在哪里用啊,服务就要有个服务的样,业务逻辑就要写在服务端
------解决思路----------------------
用了wcf就绝不要再让客户端直接连接数据库,wcf是服务,否则你又在用局域网的思维模式开发了。
关于传datatable,你是不是因为行数据类型的问题要这样干?wcf在开发的时候,客户端可以通过地址引用服务端的契约接口,或是通过ChannelFactory创建代理对象,在同一个工程项目中,写一个类库,定义契约,C、S分别进行引用相同的契约,这样类似List<MyClass>中的类型两端就都能“识别”了。
  相关解决方案