首页 新闻 会员 周边 捐助

关于MVC5中数据库的增删改查

0
悬赏园豆:100 [待解决问题]

诚心请教,请帮助解惑,一直迷茫中。

1、一般企业应用系统很多数据都是关联的,我执行一个动作基本会更新几张表,所以企业内部基本都是以存储过程的形式来进行开发的,不知道在MVC中如何处理?

2、MVC中与传统的三层DAL,BLL这些有什么区别或者说是更好的说明?

(这个我明白model跟三层没关系,我可能本身就不太清楚,所以表述起来很困难,基本可以理解为我怎么将三层与model、controller关系梳理好)

3、数据库里面的字段肯定是根据业务需求进行添加,如果用EF的话是否每次都需要做迁移,这样不就很不方便?

Jay_Ai的主页 Jay_Ai | 初学一级 | 园豆:12
提问于:2015-08-07 13:54
< >
分享
所有回答(7)
0

你就直接用Linq to sql

LowKeyC | 园豆:87 (初学一级) | 2015-08-07 13:57
0

MVC是UI层框架,跟三层没有冲突

吴瑞祥 | 园豆:29449 (高人七级) | 2015-08-07 14:08

非常感谢你的回答,可能是我表述不清楚,我按照三层进行分解,但是最后与model这些怎么衔接?

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:22

@Jay_Ai: 没有任何关系.mvc的model可以认为是viewmodel 三层里的model可以认为是数据实体

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2015-08-07 14:24

@吴瑞祥: 不好意思,不是很明白,另外现在所有能查到的例子上面model基本都是直接数据库表,实际生产中我肯定显示的是查询后的结果,我如何将我查询出来的东西显示出来呢?

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:29

@Jay_Ai: 你有viewmodel的概念吗?viewmodel代表的是一个视图结构,model代表是一个表结构

你从数据库查出来的是model,你要做的是在C中将model绑定到一个页面的viewmodel上,然后view将view将viewmodel的数据展示出来

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2015-08-07 14:34

@吴瑞祥: 

感谢回答,我换个说法啊,是否MVC里面的model我其实可以不简单的理解为表结构,而是我需要的一个视图,只是现在给出的例子里面都是表结构,所以我这样理解错了?

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:39

@Jay_Ai: 感觉你应该是闭门造车好多年了。新的东西都不知道,但是懂编程。

1、ORM你不熟悉。

2、你懂得查询的话,不喜欢ORM也可以用AutoMapper将你查询出来的结果映射到Model上。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 14:39

@爱编程的大叔: 

呵呵,因为职业的转变,很久没有专门做开发了,所以确实如你所说,放下来太久了,所以现在看新的比较吃力,那能帮忙给个学习方法,我先看下ORM的相关资料?

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:43

@Jay_Ai: 买书是必要的。

EF比较变态一些,对理解能力和编程能力都有一些要求,

LINQ TO SQL容易入门一点,比较轻量级。

然后就是练习了,这个没有啥好方法了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 14:47

@爱编程的大叔: 

不过说实话,是否能够提供一个最简单的demo,就是我通过调用一个存储过程,然后将查询结果显示在界面上?(260672188@qq.com)  当然这要求本来就不合理,不方便的话你就忽略吧,呵呵。

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 15:05

@Jay_Ai: 我直接在这儿写吧。

Public Class UserModel 
    public Property UserName as string
    public Property Password as string
End Class

UserModel是一个实体,可以不用和数据库中相同

dim myDB as DBContext

dim myQuery as IList = mydb.执行存储过程

使用Mapper (比如AutoMapper, EmitMapper ..... 等)请自行Google Mapper C#
将MyQuery ==> 映射到UserModel上

这部分是你DEMO里面看不到的。其他的你看DEMO就有了。

 

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 15:13
0

1、一般企业应用系统很多数据都是关联的,我执行一个动作基本会更新几张表,所以企业内部基本都是以存储过程的形式来进行开发的,不知道在MVC中如何处理?

MVC和你怎么使用数据库是没有关系的。

 

2、MVC中与传统的三层DAL,BLL这些有什么区别或者说是更好的说明?

(这个我明白model跟三层没关系,我可能本身就不太清楚,所以表述起来很困难,基本可以理解为我怎么将三层与model、controller关系梳理好)

传统探讨的DAL\BLL就是把类分布在不同的文件中而已,PETSHOP带了一个坏头。

你可以忘记DAL和BLL了。

 

3、数据库里面的字段肯定是根据业务需求进行添加,如果用EF的话是否每次都需要做迁移,这样不就很不方便?

那请问你怎么写可以在修改字段后不需要修改代码?

 

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 14:21

1、任何系统肯定都是与数据库关联的,mvc里面他的model现在给出的实例都是直接数据表,但是我实际生产中显示的肯定都是查询出来的东西,所以不知道在mvc中如何处理

3、我的意思CS的系统我是允许客户自己新增字段的,或者即使是程序员进行字段添加,但是不需要做什么迁移之类的,因为最近看的EF,他修改后还要做迁移动作,我的意思不是指不要修改代码。

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:24

@Jay_Ai:

1、MVC 只要求你按照MODEL/VIEW/CONTROLLER来写。

至于MODEL你要怎么写并没有规定,你看到的只是大部分人这么写,你高兴别的写法是可以的。

这样明白吗?

2、所以的ORM都有一个特性(这个是优点,也是缺点),就是强类型实体。

既然强类型实体了,添加字段当然得重新编译。

那么能不能不编译也能用呢,答案是可以,不过这样你只能用弱类型编程。

你所说的客户自定义字段,你熟悉EF以后自然知道咋办。

 

3、什么是Model

其实你可以这样理解,面向对象,对象就是MODEL,强类型编程的好处是,

你不用这样写

myTable.Item("UserName")

而可以这样写

myTable.UserName

你明白两种写法在编程上带来的区别,才能明白ORM以及MVC中这个M的作用和优点。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 14:28

@爱编程的大叔: 

1、这点概念不是很清晰,举个最简单的例子

比如demo里面的都是直接显示的表里面的字段,最后来个dbset<>,如果我是执行的存储过程后得到的结果,我如何显示呢?

 

(主要是我只有CS结构的经验,问的不清晰或者错误的地方还请见谅)

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:37

@Jay_Ai:

1、存储过程也是有一个MODEL的,除非你的存储过程的返回表是变化的,无法推测的。

2、要不然用我上面说的AutoMapper也行。

我也是做CS的,你只是不看书和不上网罢了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 14:41

@爱编程的大叔: 

推荐会实际应用的书呢?

我是转到SAP的实施顾问了,现在公司需要在互联网上面开展项目,自己不太懂,这样就没法带人啊

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:48

@Jay_Ai: 那你得先学习WEB编程了,随便找本ASP.NET 书吧。

我理解WEB用了半年的时间。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 14:51

@爱编程的大叔: 好的,非常感谢,后需还有问题再请教

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 14:58

@Jay_Ai: SAP  居然用NET?难道不是用JAVA?

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-07 15:00

@爱编程的大叔: B1的不是java的,呵呵,他有好多产品的。

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-07 15:01

@爱编程的大叔: 

对了,昨天突然有个想法忘请教了,我记得当初做开发的时候,我们使用存储过程的目的好像就是为了在后台编写好以后,程序实现后就不需要修改了,特别是ERP这类的开发,基本都是后台数据库修改即可,像现在这种模式不是两方面基本都要维护?

支持(0) 反对(0) Jay_Ai | 园豆:12 (初学一级) | 2015-08-08 11:56

@Jay_Ai: 不用啊,存储过程修改一般只是修改逻辑控制,更加严密,不会动到字段就行。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2015-08-08 12:21
0

MVC只是界面层,后面的数据访问,你以前怎么用,现在还怎么用。

幻天芒 | 园豆:37205 (高人七级) | 2015-08-07 14:37
0

顶一下

HandsCool | 园豆:4 (初学一级) | 2015-08-07 16:17
0

mvc是非常灵活的,依然可以使用ADO.NET

lb1208 | 园豆:371 (菜鸟二级) | 2015-08-10 09:30
0

mvc+dal+bll+model+ADO.NET这样开发比较好?

三人之行,必有我师 | 园豆:291 (菜鸟二级) | 2015-08-11 15:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册