WCF访问数据库,这样做对不对?

fd43t5t 2015-10-12 06:10:17
一个C/S程序,利用WCF服务访问数据库,一种是直接将在服务端查询的DataTable返回到客户端,一种是将SQL查询文本和数据库地址文本返回到客户端,由客户端自己查询。

请问,这两种方法,哪种好些呢?第二种会不会不安全呢?
我主要是想到有些情况是使用SqlDataReader逐行阅读,在本地要好操作些。
...全文
258 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fd43t5t 2015-10-13
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
如果你要本地逐行读,那你还用wcf干嘛?还有wcf返回datatable你这是瞎扯,数据契约哪里去了,别把wcf当ws在哪里用啊,服务就要有个服务的样,业务逻辑就要写在服务端

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

业务和逻辑,都封装到WCF 啊
fd43t5t 2015-10-12
  • 打赏
  • 举报
回复
引用 1 楼 findcaiyzh 的回复:
第二种方法没有什么必要吧。

如果是我的话,会把一些business logical 封装到WCF中。


引用 1 楼 findcaiyzh 的回复:
第二种方法没有什么必要吧。

如果是我的话,会把一些business logical 封装到WCF中。

business ?logical ?
什么啊
宝_爸 2015-10-12
  • 打赏
  • 举报
回复
第二种方法没有什么必要吧。

如果是我的话,会把一些business logical 封装到WCF中。

110,500

社区成员

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

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

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