请教高手解答多层结构中的Model层

时间:2021-11-24 19:45:04
我对Model层的疑惑:
1:不可能为每个表定义一个单独的业务实体。
2:不可能把每个表的字段都定义为实体的属性。
我看了几个多层的项目Model层里只定义了一部分表的实体,而这些实体里面也没全部把表的字段定义为属性。

而在我看来对同一个表你的Select可能需要全部字段,也可能只要其中的几个。那么最好的办法就是把每个表都建立一个实体---实体里把表的字段全部定义出来。但结果是20张表大概200左右个字段。代码量就可想而知了
问题:综合上面2个问题,那么要怎么为表建立业务实体呢,或者说怎么建立才正确。

25 个解决方案

#1


大哥们帮一下,自己先顶

#2


一两句概括不来。。。

#3


可以说个大概把或者什么地方有详细的说明

#4


帮顶!

#5



业务实体,顾名思义,应该是根据业务要求来建立和规划的!

和数据库表的结构没有必然的联系

一个业务实体的多个属性,可以是多个数据库表的多个字段,也可以是一个数据库表的一部分字段

我个人的理解,大家讨论~

^o^

#6



我认为是这个顺序:

分析需求——UseCase——业务实体建模——数据建模

#7


看petshop,它的业务实体与数据库表并不完全对应,这样可能更体现了以语言为中心,而不是以数据为中心的设计思想.

但是这样明显一个问题是业务发生变化,在改动代码时,可能引起不必要的困惑,当然petshop并不需要进行业务上的扩展,所以它可以写得非常优美.
个人认为,数据库的实体,大部分都应当与数据库表相对应,这样虽然不怎么美观,但是整齐划一,既好理解,也容易修改.

个人意见,还听他人高论.

建议楼主多加点分,以使高手们言有所得,呵呵.

#8


以数据为中心的设计,还是以类为中心的设计,是两种思路,也许我的想法过于以数据为中心了,并不适合现代的编程思想.

#9


我的想法是也业务为中心,不如一个经理,把他要进行操作的做为一个业务层,而不是对表操作,他麻烦,也没必要

#10


我的想法是也业务为中心,比如一个经理,把他要进行操作的做为一个业务层,而不是对表操作,他麻烦,也没必要

#11


如果两个表连接得到的表要怎么设计他的实体呢

#12


大家继续呀分不够我会加的,继续顶

#13


等!!!!!!!!!!

#14


学习

#15


生成实体,

.NET里有专用的生成工具... 

不用手写那么麻烦.. 

新建时选择"数据集"那项.

.NET会自动生成.相关属性和方法...

#16



楼上的方法生成的是Typed DataSet

类似于Hibernate的方法

#17


如果按照业务来建模,那么说如果业务拓展了,那么业务实体类里面也就要加属性进去了??

#18


那肯定 -_-||

#19


晕加了属性进去那不是会关系到好多个页面

#20


自己再顶!!!!

#21


代码量就可想而知了
------------------------------
代码量不是问题,自动生成!

#22


用什么会自动生成呢?

#23


等了4天了还是没人回答呀

#24


用代码生成器拉

#25


你搜索一下代码生成器,很多的,有的比较好
推荐http://www.maticsoft.com

#1


大哥们帮一下,自己先顶

#2


一两句概括不来。。。

#3


可以说个大概把或者什么地方有详细的说明

#4


帮顶!

#5



业务实体,顾名思义,应该是根据业务要求来建立和规划的!

和数据库表的结构没有必然的联系

一个业务实体的多个属性,可以是多个数据库表的多个字段,也可以是一个数据库表的一部分字段

我个人的理解,大家讨论~

^o^

#6



我认为是这个顺序:

分析需求——UseCase——业务实体建模——数据建模

#7


看petshop,它的业务实体与数据库表并不完全对应,这样可能更体现了以语言为中心,而不是以数据为中心的设计思想.

但是这样明显一个问题是业务发生变化,在改动代码时,可能引起不必要的困惑,当然petshop并不需要进行业务上的扩展,所以它可以写得非常优美.
个人认为,数据库的实体,大部分都应当与数据库表相对应,这样虽然不怎么美观,但是整齐划一,既好理解,也容易修改.

个人意见,还听他人高论.

建议楼主多加点分,以使高手们言有所得,呵呵.

#8


以数据为中心的设计,还是以类为中心的设计,是两种思路,也许我的想法过于以数据为中心了,并不适合现代的编程思想.

#9


我的想法是也业务为中心,不如一个经理,把他要进行操作的做为一个业务层,而不是对表操作,他麻烦,也没必要

#10


我的想法是也业务为中心,比如一个经理,把他要进行操作的做为一个业务层,而不是对表操作,他麻烦,也没必要

#11


如果两个表连接得到的表要怎么设计他的实体呢

#12


大家继续呀分不够我会加的,继续顶

#13


等!!!!!!!!!!

#14


学习

#15


生成实体,

.NET里有专用的生成工具... 

不用手写那么麻烦.. 

新建时选择"数据集"那项.

.NET会自动生成.相关属性和方法...

#16



楼上的方法生成的是Typed DataSet

类似于Hibernate的方法

#17


如果按照业务来建模,那么说如果业务拓展了,那么业务实体类里面也就要加属性进去了??

#18


那肯定 -_-||

#19


晕加了属性进去那不是会关系到好多个页面

#20


自己再顶!!!!

#21


代码量就可想而知了
------------------------------
代码量不是问题,自动生成!

#22


用什么会自动生成呢?

#23


等了4天了还是没人回答呀

#24


用代码生成器拉

#25


你搜索一下代码生成器,很多的,有的比较好
推荐http://www.maticsoft.com