zoukankan      html  css  js  c++  java
  • MVC+EF 入门教程(二)

    一、前沿

        为了使以后项目分开,所以我会添加3个类库。用于存储 实体、数据库迁移、服务。这种思路是源于我使用的一个框架 ABP.有兴趣的您,可以去研究和使用这个框架。

    二、修改本地连接

        在项目中,找到 Web.config  在里面添加如下代码:

      <!--SqlServer数据库连接-->
      <connectionStrings>
        <add name="Default" connectionString="Server=DESKTOP-M5G60B9; Database=MVCLearning; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
      </connectionStrings>

      

                

      name="Default" 这是给这个 connectionString 取名,Default 是任意的。

      Server=DESKTOP-M5G60B9; 这是链接电脑的 SQLServer 的链接名。

      Database=MVCLearning;      这是链接数据库的数据库名 MVCLearning 这个是任意的,你开心就好。

      Trusted_Connection=True;    如果没有用户名和密码,我们用 True 来登录。  providerName="System.Data.SqlClient" 这是驱动 SQLServer 的命名空间。

    三、添加类库

        这里我说一下,添加类库。是我自己的想法,没有必要说一定添加,你可以添加也可以不添加。

        添加类库的方式如下:解决方案 --> 添加 --> 新建项目  得到如下图所示,选择 类库(.NET  Framework)

        

        然后添加三个类库,如下图所示:

        

    四、操作 EntityFrameworkDome 类库

        在 EntityFrameworkDome 中添加文件夹为:EFramework 然后再新建一个 Class ,让他继承 DbContext 实例如下:

        

        代码报错,属于正常,因为我们还没引入 EntityFramework. 的配置文件。 接下来我们来添加:

        找到 引用 -->管理NuGet重新包 实例如下:

        

        下载安装成功以后,在报错的地方,点击导入包,就可以得到如下图所示:

        

        然后完善这个类,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Data.Entity.ModelConfiguration.Conventions;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace EntityFrameworkDome.EFramework
    {
        public class QSLServerContext:DbContext
        {
            public QSLServerContext() : base("Default") {//这个Degault 来源于链接字符串
            }
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
                base.OnModelCreating(modelBuilder);
            }
        }
    }

    五、在Core中创建实体

        我们就按照我所学的教程来,我们就创建一个 ”博客 “ 实体。

        

        实体的代码如下:

    using System.Threading.Tasks;
    
    namespace Core.Blogs
    {
       public class Blog
        {
            //编号
            public int Id { get; set; }
            //标题
            public string Title { get; set; }
            //内容
            public string Contect { get; set; }
            //创建时间
            public DateTime CreatedTime { get; set; }
        }
    }

    六、生产数据库

      在 Core 中添加完实体以后,回到 SQLServerContext 中添加一句代码:

    public DbSet<Blog> Blogs { get; set; }

      示例如下:

        

       然后点击 工具-->NuGet包管理器-->程序包管理控制台

        

        然后选择如下图所示:

        

        我们在程序包管理器控制台中使用:Enable-Migrations -verbose 命令来应用Entity Framework的数据迁移功能:

    Enable-Migrations -verbose

        得到结果如下:

        

        迁移命令应用成功后,我们可以在解决方案的中看到多出来一个名为Migrations的文件夹,里面包含一个名为Configurations.cs的文件,先不用理会这个cs文件,我们继续使用命令来处理接下来的步骤。接着使用:

    Add-Migration InitialDatabase -verbose

        得到结果如下:

        

        同时你将还看到在 EntityFrameworkDome 中还添加了一个文件夹和在文件夹下多了一个 class 实例如下

        

        其中,InitialDatabase是数据迁移的名称,可以任意命名。命令成功运行后,Migrations文件夹中又会自动创建一个以时间戳开始的cs文件,如:201708101350430_InitialDatabase.cs 最后,我们应用Update-Database命令来生成数据库和实体对应的数据表:

    Update-Database -verbose

        执行后的结果:

        

        然后你可以去打开你的数据库了,你会发现你的数据库和表都已经建好了。这就是 EF 操作数据库的强大之处:

        

        这是不是很神奇,这也是我为什么不动数据库的原因。下一张我没操作刚刚生成的数据库。

        

    
    
    

        

        

  • 相关阅读:
    项目
    关于我
    【转载】罗胖精选|什么样的自控方法才有效?
    知识管理——得到CEO脱不花女士的一次分享
    注意由双大括号匿名类引起的serialVersionUID编译告警
    持续集成、持续交付和持续部署
    Google Cayley图数据库使用方法
    任务的属性
    团队博客地址
    个人总结
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/7341670.html
Copyright © 2011-2022 走看看