• ASP.NET MVC中使用EF框架


         在公司中一直在使用oracle数据库,然后天天都是手写T-SQL,用的要么是ado.net封装好的操作数据库的方法,要么用的是oracle原生的一些操作数据库的方法,以前也自己了解过一些微软ORM的东西,更是听说过Entity Framework的大名,今天手动操作了一下,

    想起了webcast里苏鹏说的那句话,微软把东西做的这么简单,基本不用谢什么代码,按几个按钮或者配置几下就生成了一堆东西,这究竟是帮助了程序员还是害了程序员。感叹没用,还是记录下动手的一些过程。

         首先新建了一个mvc4的应用程序,route里默认的是

    routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

    这很明显,默认的控制器是Home,默认action是Index,控制器内部通过Index方法来操作用户的请求,去Controller文件夹下看了下,什么都没有。这肯定是无法运行哈。果断添加了Home控制器,然后简单的在下边写了一个Index的action。然后右键生成了一个Index的视图。这时,发现可以正常运行起来了。但是,这时最最基本的asp.net mvc了,神马都没有。。。。只有界面上显示了一个Index。因为视图中有这样的代码

    @{
        ViewBag.Title = "Index";
    }
    
    <h2>Index</h2>

    好了,主角儿出场,就是EF相关的东西。

    首先,在项目上右键添加数据库,然后vs会弹框询问,是否要将数据库文件放到App_Data下,这时为了安全,因为正式发布后,用户是没有权限访问这个文件夹的。然后双击这个生成的数据库,可以看到,vs左边会出现数据库的连接,如果没有出现,或者报错。确认下自己是否安装了sqlserver数据库。然后可以在这里增加表,视图等等内容;然后,在Model文件夹下添加ado.net实体数据模型,完全傻瓜式的生成数据上下文以及实体类,生成了一堆文件,我比较懒,只挑了两个自己操作数据库相关的文件来关心。数据上下文文件的相关代码:

    namespace MyMVC.Models
    {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Infrastructure;
        
        public partial class MyMVCDBEntities : DbContext
        {
            public MyMVCDBEntities()
                : base("name=MyMVCDBEntities")
            {
            }
        
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                throw new UnintentionalCodeFirstException();
            }
        
            public DbSet<Table> Table { get; set; }
        }
    }

    实体类的相关代码:

    namespace MyMVC.Models
    {
        using System;
        using System.Collections.Generic;
        
        public partial class Table
        {
            public int Id { get; set; }
            public string UserName { get; set; }
            public string Password { get; set; }
        }
    }

    最后,在Model文件夹中添加一个文件,可以在文件中通过实体类和数据上下文组合来使用EF对数据库中的表进行增删改查了,具体操作方法在EF分类下有说明。

  • 相关阅读:
    阿里云云效技术专家分享:云原生开发、调测及可靠发布解决方案
    对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
    时序数据库永远的难关 — 时间线膨胀(高基数 Cardinality)问题的解决方案
    当Java遇上机密计算,又一段奇幻之旅开始了!
    内核热补丁,真的安全么?
    在 Dubbo3.0 上服务治理的实践
    CCF-201509-3-生成模板系统
    WPF CommandParameter的使用
    UWP App Data存储和获取
    在WPF中的ItemsControl中使用事件和命令(Using events and Commands within ItemsControl in WPF)
  • 原文地址:https://www.cnblogs.com/mhdtysp/p/4242876.html
Copyright © 2020-2023  润新知