1 强类型弱类型的问题
如果是List<Model>则为强类型的,DataRow则为弱类型的
简单的说,就是Model的属性你可以"."出来,DataRow你"."不出来
2 扩展性的问题,Model既可以当成数据的载体,还可以当成领域模型,如果是从领域设计入手的话,你会发现Model的应用范围比DataRow大很多。
Model还可以设计成为充血,贫血等各种各样的,而DataRow则就是一个数据载体,不具有其它功能
很久以前就有达人告诉过我们DataSet,DataTable这种东西是反面向对象的,Model才是面向对象的体现。
当然面向对象无所谓,只要能解决问题就好。
但是在复杂的系统中,由于Model的面向对象特性,更容易解决业务问题,所以一般我们做成Model,而不是DataRow。
3 Model最大的坏处就是Model和DB之间的转换,这也是ORM出现的原因,这个远没有靠拢数据库的DataRow直接和方便了。
这个model层就是为了面向对象的思想的编写方便或快速开发而设计。
如果你用datarow的话每个字段key不得一个一个字母敲吗,而且不能保证敲对,编译时还不能知道是否有错误,而且如果字段变了那么要牵连所有的相关都要一个一个修改。
当然了,小项目就不讲究这个了