关于实体类的疑惑

yjqwangluo 2009-12-02 08:48:58
我想问下,,三层架构中,实体类到底有什么好处。例如说。我从数据库获取了数据,我可以把它直接放在DataSet里面,直接传到另外一层。。要用实体类的话,还得把获得的数据封装到实体类里面,这样做和直接传比起来有什么好处,,我喜欢有个比较通俗易懂的答案,,,不胜感激。。。
...全文
130 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjqwangluo 2009-12-02
  • 打赏
  • 举报
回复
大概明白了。谢谢了。还有。楼上再楼上的。。不好意思啊。。按错了。鼠标点到板砖那了。对不起啊。。
ArthurCX 2009-12-02
  • 打赏
  • 举报
回复
楼上说的对,实体类其实可以理解为一种规定性的抽象封装,比如在数据库里A和B是相关的两个字段,那么他们在程序里面就应该需要维护关联的关系,那么,抽象成实体类就是一个比较好的方法。当然,如你所说,用集合也可以实现类似的事情。但那样以后维护起来就比较麻烦。
诚然,可能现在你也感觉不到差别,那是因为代码量小了,遇到改动的时候比较好改,所以不觉得。当你一个类的代码行上3000了,你再试试用集合来做,你就会明白为啥咱会用实体类了。

最后最后,简而言之,一切为了抽象,一切为了封装。
zhlulu2wlnz 2009-12-02
  • 打赏
  • 举报
回复
其实实体类在三层架构中所实现的一个重要功能是将DAL,BLL,UI三层连接起来。比如说写一个实体类
class stuinfo{
private string name;
private string age;
public string Name{
get{}
set{}
public string Age{
get{}
set{}
}
实体类完成以后就可以简单的实现值在各个层之间的传递和处理。尤其是在BLL中,比如说要处理性别的选择,用0和1表示,用实体类接收。这样就省了很多代码。提高了代码的可读性。

}
}
PandaIT 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yjqwangluo 的回复:]
例如说我数据库只有一张表,,里面只有几列的数据,,还得另外建个实体类封装起来?
[/Quote]

你慢慢会理解这样的好处!!

把类封装成一个对象,实现各层间数据传递,一张表对应一个实体类 这也是面向对象的思想.

把表封装成一个一个的类!!
yjqwangluo 2009-12-02
  • 打赏
  • 举报
回复
额。。没人来了么。。
yjqwangluo 2009-12-02
  • 打赏
  • 举报
回复
我是北大青鸟的。他们教材里又弄了个模型层。用来放实体类。。说起来应该是4层。但我碰到我前面说的情况的话,也就是表里面的数据比较少的话。我都是直接返回个DataSet..然后直接在表示层那把控件的数据源绑在DataSet上,这样做规范么。。
wartim 2009-12-02
  • 打赏
  • 举报
回复
看你的需求了,如果简单的项目,不用三层也无所谓
wartim 2009-12-02
  • 打赏
  • 举报
回复
别的方面?
可以实现类工厂
yjqwangluo 2009-12-02
  • 打赏
  • 举报
回复
例如说我数据库只有一张表,,里面只有几列的数据,,还得另外建个实体类封装起来?
wartim 2009-12-02
  • 打赏
  • 举报
回复
也就是说即使你不用实体类,至少要有表定义
比如

Class ATable
{
public static Name="Name";
}

DR[ATable.Name]="1";
yjqwangluo 2009-12-02
  • 打赏
  • 举报
回复
只有这方面的好处么,还有没有其他的呢。。?
wartim 2009-12-02
  • 打赏
  • 举报
回复
编译时
wartim 2009-12-02
  • 打赏
  • 举报
回复
简单说,就是编辑时就可以发现纠错而不是运行时发现错误
一个字段叫Name
实体类如果写错了
X.Name="1";
写成了X.Nama="1";
编译时就出错了,其实根本智能感应就不会出来这个错误的字段
如果是直接传,就要自己保证字段的正确
比如
DR["Name"]="1";
写成了
DR["Nama"]="1";
编译不会出错,程序也能运行,直到执行到这行程序出错了你才知道写错了,如果是在一段用得很少的代码里,代码又非常多,测试又不够充分,就容易遗漏这个错误,知道客户那崩溃了才知道
yjqwangluo 2009-12-02
  • 打赏
  • 举报
回复
不是很清楚。。我可以把所有的数据都直接用DataSet传过去啊。。 能说清楚些么,谢谢。。
lijing3333 2009-12-02
  • 打赏
  • 举报
回复
比如你在外面传递参数 要写5个甚至更多 用实体类 传递1个对象就可以额

111,120

社区成员

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

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

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