MVC学习笔记一:创建实体数据模型

最近做个新项目,要用到MVC及EntityFramework,由于自己从没搞过这个框架及ORM,所以找了些资料看了下,不过网上关于这两个结合使用的资料也不是太多,我也比较笨,别人写的有的也看不大懂。想花钱买相关的书,看到亚马逊上关于EF的书就好几百块一本可怜,还基本是英文的,表示压力真的很大。遂就自己慢慢摸索了几天,简单记 录下 一些心得,也方便要用MVC+EF做项目,却跟我一样有点迷茫的朋友们入门大笑

工欲善其事,必先利其器。由于需要MVC 3和EntityFramework 4
所以电脑上需装有:
IDE:VisualStudio2010或2012;
数据库:SqlServer.

我用的是VS2012+SqlServer2008,开发语言C#.


首先,打开VS,新建一个MVC项目,如下图:


点击“确定”后弹出界面,选择如下图:

选择Internet应用程序可以方便的提供简单的模板,不要再手工输入了;

视图引擎选择Razor,其语法也比较简单,不知道的可以了解一下MVC3 Razor视图引擎基础语法



点击"确定",可以看到解决方案中出现了如下文件:


其中Web.config文件是存储的一些Web设置,如应用程序设置,连接字符串等;

Global.asax文件为路由设置文件,其中RegisterRoutes方法设置了URL访问的规则,

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // 路由名称
                "{controller}/{action}/{id}", // 带有参数的 URL
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
            );
        }

即:http://主机IP:端口/controller/action/参数的形式,同时它也指定了默认的访问参数,即如果不指定controller和action,就直接输入http://Ip:端口,那么就会访问控制器Controllers文件夹下的HomeController类中的Index方法,然后浏览器返回Index方法中的视图:

直接F5运行项目:



如果手动在地址后面加上/Home/Index即:http://localhost:34979/Home/Index 会看到效果还是和上面一样。

接下来,在项目里新建一个Entities文件夹,用来存放我们将要用到的实体数据模型文件(*.edmx)文件。

新建好文件夹后,右击文件夹新建一个edmx文件(有关edmx文件构成可以百度).

这里取名“Apples.edmx”


点击”添加“,它会要求选择”空模型“还是”从数据库生成“,这里选择”空模型“。

新建好文件后,IDE会默认打开该文件,鼠标右击空白处,新增一个实体,即对应数据库中的一张表



新增表界面如下:


点击确定,完成后就出现了一张实体模型表,右击视图,再为它建几个列:一个是type 字符型,一个是color字符型,一个是price decimal型。类型在标量属性的属性里设置。右击或者F4都可以跳到属性窗口。


设置完成后,鼠标右击空白处,选择”根据模型生成数据库“

选择好数据库名后,点击下一步,直到生成Apples.edmx.sql文件,


IDE会自动打开它,鼠标右击"执行"


显示“已成功完成命令”,到数据库检查一下:

可以看到EF已经自动新建了一张Iphones表,然后手工添加几条记录进去。

然后,再来看一下Entities文件夹下的文件:


这些文件都是IDE自动生成的。

如果有朋友用的是VS2010,那么可能跟只有蓝色的文件,VS2012默认两种文件都生成,但默认只有蓝色直线上方的文件里有内容。

其实只是操作数据库方式略有不同(对应的连接模型是用DbContext还是ObjectContext类)

这个将在下一篇重点介绍.


打开Apples.Context.cs文件,会发现类名就是我们上面设置数据库连接时的名称,也是Web.config文件里的一个配置节点属性值名称,这些都是系统自动帮我们生成的:

    public partial class ApplesContainer : DbContext
    {
        public ApplesContainer()
            : base("name=ApplesContainer")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    }


到这里,准备工作已经差不多了。接下介绍MVC利用EF的增删改查,由于这个页面的图片有点多了,还是分开到另一篇文章里去吧。见MVC+EntityFramework学习笔记二


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值