当前位置: 移动技术网 > IT编程>开发语言>.net > 使用EF Core+CodeFirst建立ASP.NET Core MVC项目

使用EF Core+CodeFirst建立ASP.NET Core MVC项目

2019年08月01日  | 移动技术网IT编程  | 我要评论

许凤元以湖南领导身份亮相,2岁宝宝食谱,疏水阀型号

本篇随笔介绍如何使用.net core+ef core创建web应用程序

首先借用官网的话简单介绍一下asp.net core

asp.net core 是一个跨平台的高性能开源框架,用于生成基于云且连接 internet 的新式应用程序。 使用 asp.net core可以:

  • 创建 web 应用程序和服务、iot 应用和移动后端。
  • 在 windows、macos 和 linux 上使用喜爱的开发工具。
  • 部署到云或本地。
  • 在 .net core 或 .net framework上运行。
我的开发工具:visual studio2017、sqlserver2012
我的开发环境:.net core2.2

接下来介绍使用visual studio2017创建web项目,步骤如下:

1、选择.net core→asp.net core web应用程序,点击确定

2、选择.net core、asp.net core2.2,选择web应用程序(模型视图控制器)即mvc,暂时不进行身份验证,点击确定

得到如下解决方案:

3、使用工具→nuget包管理→程序包管理控制台添加ef依赖

  在nuget官网找到microsoft.entityframeworkcore包           

     网址:https://www.nuget.org/packages/microsoft.entityframeworkcore

     

      

     

    然后在程序包管理控制台中输入  install-package microsoft.entityframeworkcore -version 2.2.4 点击回车

     

     在依赖项nuget中出现microsoft.entityframeworkcore(2.2.4)包说明添加ef依赖成功。

    

    也可直接在项目工程文件(*.csproj)中添加如下代码达到添加ef依赖的目的

<itemgroup>
    <packagereference include="microsoft.entityframeworkcore" version="2.2.4" />
</itemgroup>

 4、创建数据库上下文和模型类

     在解决方案下新建.net core类库dal(同样记得添加ef依赖),在dal中新建数据库上下文(mydatacontext)和模型类(userinfo),代码如下:

using system.componentmodel.dataannotations;
using system.componentmodel.dataannotations.schema;

namespace dal
{
    public class userinfo
    {
        [key]
        [databasegenerated(databasegeneratedoption.identity)]
        [required(errormessage = "不能为空")]
        [display(name = "用户id")]
        public int uid { get; set; }

        [required(errormessage = "不能为空")]
        [display(name = "用户名")]
        public string uname { get; set; }

        [required(errormessage = "不能为空")]
        [stringlength(50, errormessage = "长度不能超过50")]
        [display(name = "密码")]
        public string upws { get; set; }

        [required(errormessage = "不能为空")]
        [regularexpression(@"[a-za-z0-9._%+-]+@[a-za-z0-9]+\.[a-za-z]{2,4}", errormessage = "邮箱格式错误")]
        [display(name = "邮箱")]
        public string uemail { get; set; }

        [required(errormessage = "不能为空")]
        [stringlength(11, errormessage = "长度不能超过11")]
        [display(name = "联系方式")]
        public string utel { get; set; }
    }
}
using microsoft.entityframeworkcore;

namespace dal
{
    public class mydatacontext : dbcontext
    {
        public mydatacontext(dbcontextoptions<mydatacontext> options) : base(options) { }

        public dbset<userinfo> userinfo { get; set; }

        protected override void onconfiguring(dbcontextoptionsbuilder optionsbuilder)
        {
            base.onconfiguring(optionsbuilder);
        }

        protected override void onmodelcreating(modelbuilder modelbuilder)
        {
            base.onmodelcreating(modelbuilder);
        }
    }
}

备注:数据库上下文是为数据模型协调 entity framework 功能的主类 。 此类由 microsoft.entityframeworkcore.dbcontext 类派生而来。

5、在startup.cs中注册数据库上下文

     在 asp.net core 中,服务(如数据库上下文)必须向依赖关系注入(di)容器进行注册。 该容器向控制器提供服务。

     在startup.cs的configureservices()方法中添加如下代码:

var connection = "data source=.;initial catalog=testdb;user id=sa;password=svse;";
services.adddbcontext<mydatacontext>(options =>
    options.usesqlserver(connection, b => b.migrationsassembly("testcore")));

备注:1、在项目运行时,会首先执行configureservices()方法。

           2、连接数据库的字符串connection可配置在appsettings.json文件中,在此暂不做介绍。

 6、使用程序包管理器控制台命令生成数据库

     打开程序包管理器控制台选择默认项目后 输入数据迁移命令:add-migration elen  (elen随意输入)

pm> add-migration elen

     

     迁移成功,生成文件migrations(可删除)

     

     继续输入创建数据库命令update-database向其应用新的迁移

pm> update-database

     

     创建数据库成功,此时sqlserver2012中已存在数据库testdb

     

备注:1、生成数据库时会生成迁移历史表__efmigrationshistory,请勿删除。

           2、在需要修改数据库字段时,切记不要直接在数据库修改,可在模型类中修改后运行update-database命令进行修改。

至此,使用ef core+codefirst建立asp.net core mvc项目介绍完毕,在学习和使用过程中我遇到了很多坑,本文是我在操作相对熟练以及熟悉其基本原理后所写,适合初学者参考,如有不足之处欢迎大家留言评论!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网