首页新闻找找看学习计划

关于mvc+entityframework架构中model层的困惑

0
悬赏园豆:5 [已解决问题] 解决于 2017-08-03 08:56

如果我想采用mvc+entityframework的架构,其中根据数据库表结构

自动生成数据库实体。

另外页面中需要用到的model是否需要自己新建一个类(不直接使用数据库实体类)

然后调用BLL层返回对应的类数据。

如果是这样的话,那在BLL层调用DAL的方法里面 就需要进行 Model对象和数据库实体对象的转换了 这个效率会不会有问题?

就是我查询一些数据 通过EF获取的数据是先获取数据库实体数据,然后再转换成对应的model呢

还是直接写SQL查询的时候转换成model呢?

另外还涉及到增删改,是传入model对象还是数据库实体对象呢?

犇牛牛的主页 犇牛牛 | 初学一级 | 园豆:31
提问于:2017-07-24 10:38
< >
分享
最佳答案
0

说下我的理解,MVC中M指的是ViewModel,它跟View中的数据结构对应的,理论上在View中是不应该出现业务逻辑的,所以ViewModel一般是在Service或者BLL层经过一些业务处理后返回的数据模型,用博客园的文章详情页举例,该页面不仅包含文章信息,还包含了评论列表,上一篇,下一篇等额外信息,所以文章详情页的ViewModel应该是这个样子

    public class ArtivleViewModel
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Body { get; set; }
        public List<Comment> Comments { get; set; }
        public int PreUrl { get; set; }
        public int NextUrl { get; set; }
    }
收获园豆:2
oldli | 初学一级 |园豆:189 | 2017-07-24 17:14
其他回答(2)
0

一个问题里面出现三个问号,通常就是需要看书才能解决的。

1、效率从来都不是一个问题,只有当需要的时候才是问题。

2、都可以,看你心情决定。

3、都可以,看你心情决定。

收获园豆:1
爱编程的大叔 | 园豆:29788 (高人七级) | 2017-07-24 10:46

回答得很酷

支持(0) 反对(0) 没什么比你更优秀 | 园豆:130 (初学一级) | 2017-07-24 11:02

这样问是因为平时开发比较随心,但是想知道主流的采用的什么方式,因为如果通过DAL层返回数据,然后利用automapper自动映射进行转换,总感觉会浪费一些性能。

如果是我自己,倾向于通过DAL层直接返回view上面可以使用的model对象。

支持(0) 反对(0) 犇牛牛 | 园豆:31 (初学一级) | 2017-07-24 11:52

@犇牛牛:

1、性能就是用来浪费的

2、没有主流这种东西,你需要知道的是不同场景下,如何选择不同的开发方式。

3、不同规模的项目考虑的优先度是不一样的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:29788 (高人七级) | 2017-07-24 14:49
0

我个人的见解 

ui model

bll model

dal model 

是不一样的东西 但是一般图简单 3个都用dalmodel

收获园豆:1
小眼睛老鼠 | 园豆:2771 (老鸟四级) | 2017-07-25 18:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册