我在百度上搜了一下.net  core和efcore 入门案例。好多博客都是大概说了一下做法,对于小白而言还是一头雾水,我今天就抽出一点时间,写一个详细的入门小案例,就一张表没有什么业务可言。主要是操作的步骤,当然这只是让小白入个门,以后到公司工作,每个项目经理搭的架构不完全一样,但是我们懂了基本的,再做项目架构稍微复杂的就能很快上手,因为底层原理大同小异。话不多说我们开始动手做吧。

  1. 为了我们后期更好打开项目我们新建一个项目解决方案这个你们随意,咱们这个项目做

NETCOREDemo.

2.在解决方案下,打开VS2017新建项目,选择ASP.NET  Core  Web应用程序

3. ASP.NET Core 的版本自己可以选择,咱们这里选择2.0。选择空然后确定。

4.添加相关引用

有两种方式

第一种采用命令行:这个我就不多说了,可以百度一下命令行安装EFCore相关包(不同的数据库包也不一样,搜索的时候关键带上自己的数据库)

第二种简单好用:我就以SQLSERVER数据库为例,我们新建好的项目有个依赖项,我们右键>点击NuGet程序包

5.点浏览搜索一.Microsoft.EntityFrameworkCore.SqlSerVer 二. Microsoft.EntityFrameworkCore.Tools  这两个包然后安装

6.添加好引用后,继续设计数据库,采用EFCore  CodeFirst,我们先建立一个文件夹Models

在文件夹下添加这个类:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.ComponentModel.DataAnnotations.Schema;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7.  
  8. namespace MyNoteItem.Models
  9. {
  10. public class Note
  11. {
  12. [Key]
  13. [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] // 主键自增id
  14. public int Id { get; set; }
  15. [Required]
  16. [MaxLength(100)]
  17. public string Title { get; set; }
  18. [Required]
  19. public string Content { get; set; }
  20. public DateTime Create { get;set; }
  21. }
  22. }

  

7.接着在Models下创建一个NoteContext继承我们的上下文DbContext

  1. using Microsoft.EntityFrameworkCore;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Threading.Tasks;
  6.  
  7. namespace MyNoteItem.Models
  8. {
  9. public class NoteContext:DbContext
  10. {
  11.  
  12. public NoteContext(DbContextOptions<NoteContext> options) : base(options)
  13. {
  14.  
  15. }
  16. public DbSet<Note> Notes { get; set; }
  17.  
  18. }
  19. }

  

8.打开Startup.cs添加如下代码,当然连接串因自己的数据库用户和密码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Builder;
  6. using Microsoft.AspNetCore.Hosting;
  7. using Microsoft.AspNetCore.Http;
  8. using Microsoft.Extensions.DependencyInjection;
  9. using Microsoft.EntityFrameworkCore;
  10. using MyNoteItem.Models;
  11. using MyNoteItem.Repository;
  12.  
  13. namespace MyNoteItem
  14. {
  15. public class Startup
  16. {
  17.  
  18. public void ConfigureServices(IServiceCollection services)
  19. {
  20. services.AddMvc();
  21. var connection = @"Server=LAPTOP-OEENOHEO\LOCAL;DataBase=Note;UID=sa;PWD=sa123;";
  22. services.AddDbContext<NoteContext>(options=>options.UseSqlServer(connection));
  23. services.AddScoped<INoteRepository, NoteRepository>();
  24.  
  25. }
  26.  
  27. public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  28. {
  29. if (env.IsDevelopment())
  30. {
  31. app.UseDeveloperExceptionPage();
  32. }
  33.  
  34. app.UseStaticFiles();
  35.  
  36. app.UseMvc(routes => //为程序注册路由,默认打开的页面
  37. {
  38. routes.MapRoute(
  39. name: "default",
  40. template: "{controller=Note}/{action=Index}/{id?}");
  41. });
  42. }
  43.  
  44. }
  45. }

  

9.单击VS的菜单>工具>NuGet包管理器>程序包管理控制台,打开后在程序包管理器控制台执行如下命令:

Add-Migration  NoteFirst

Update-Database

执行完出现Done表示 成功,查看数据库,看是否生成对应的数据库。如出现错误检查一下数据库连接串是否正确。EF Core 默认生成的表名为复数形式,可以在NoteContext的OnModelCreating方法改写(具体可以百度)。

10.接下来项目一步步搭建,项目结构如下:

11.项目运行结果如下:

12.虽然是个入门demo,代码量还是有的,所以我放在了我的GitHub上,供大家免费下载,地址如下:

https://github.com/LZYSW/.NetCoreDemo1.git

后续分页等功能。让我期待下一期的到来吧!希望对大家有用。

.Net core,EFCore 入门的更多相关文章

  1. Asp.Net Core WebAPI入门整理(二)简单示例

    一.Core WebAPI中的序列化 使用的是Newtonsoft.Json,自定义全局配置处理: // This method gets called by the runtime. Use thi ...

  2. 《驾驭Core Data》 第二章 Core Data入门

    本文由海水的味道编译整理,请勿转载,请勿用于商业用途.    当前版本号:0.4.0 第二章 Core Data入门 本章将讲解Core Data框架中涉及的基本概念,以及一个简单的Core Data ...

  3. 005.Getting started with ASP.NET Core MVC and Visual Studio -- 【VS开发asp.net core mvc 入门】

    Getting started with ASP.NET Core MVC and Visual Studio VS开发asp.net core mvc 入门 2017-3-7 2 分钟阅读时长 本文 ...

  4. .NET Core 快速入门教程

    .NET Core 快速学习.入门系列教程.这个入门系列教程主要跟大家聊聊.NET Core的前世今生,以及Windows.Linux(CentOS.Ubuntu)基础开发环境的搭建.第一个.NET ...

  5. .NET Core快速入门教程 2、我的第一个.NET Core App(Windows篇)

    一.前言 本篇开发环境?1.操作系统: Windows 10 X642.SDK: .NET Core 2.0 Preview 二.安装 .NET Core SDK 1.下载 .NET Core下载地址 ...

  6. asp.net core轻松入门之MVC中Options读取配置文件

    接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...

  7. .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧

    一.前言 为什么要调试代码?通过调试可以让我们了解代码运行过程中的代码执行信息,比如变量的值等等.通常调试代码是为了方便我们发现代码中的bug.ken.io觉得熟练代码调试技巧是成为合格程序员的基本要 ...

  8. .NET Core快速入门教程 4、使用VS Code开发.NET Core控制台应用程序

    一.前言 为什么选择VS Code?VS Code 是一款跨平台的代码编辑器,想想他的哥哥VS,并是微软出品的宇宙第一IDE,那作为VS的弟弟,VS Code 也不会差,毕竟微软出品.反正ken是这么 ...

  9. .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)

    一.前言 本篇开发环境?1.操作系统:CentOS7(因为ken比较偏爱CentOS7)2.SDK版本:.NET Core 2.0 Preview 你可能需要的前置知识1.了解如何通过Hyper-V安 ...

随机推荐

  1. Java获取资源文件

    比如我们有以下目录 |--project |--src |--javaapplication |--Test.java |--file1.txt |--file2.txt |--build |--ja ...

  2. runloop - CFRunLoopObserverRef

    1.

  3. 记录java版本不兼容的坑,(kafka运行报错)

    启动kafka报错 错误原因是: 由较高版本的jdk编译的java class文件 试图在较低版本的jvm上运行的报错 解决办法是: 查看java版本 C:\Users\Administrator&g ...

  4. PAT 1070 结绳(25)(代码)

    1070 结绳(25 分) 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每 ...

  5. phpstrom+xdebug配置

    1.确认是否安装了xdebug 2.在php.ini文件中配置如下 [xdebug] zend_extension="D:\wamp\php-5.6.2-x64\ext\php_xdebug ...

  6. windows10创意者完整镜像下载

    今天给大家分享一个windwos10创意者的完整镜像. 在官网,我们看到的是直接下载安装,但是在没有网的时候我们就无法了 而且在很多的时候我们在下载安装windows10的时候回遇到很多无法估量的问题 ...

  7. 【Java】JavaWeb文件上传和下载

    文件上传和下载在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件 ...

  8. 2018.10.18 poj2187Beauty Contest(旋转卡壳)

    传送门 旋转卡壳板子题. 就是求凸包上最远点对. 直接上双指针维护旋转卡壳就行了. 注意要时刻更新最大值. 代码: #include<iostream> #include<cstdi ...

  9. 2018.09.27 bzoj2118: 墨墨的等式(最短路+背包)

    传送门 好题啊. 首先找到最小的一个非零系数记做a1a_1a1​,然后如果WWW modmodmod a1=W′a_1=W'a1​=W′ modmodmod a1a_1a1​,且WWW是方程的一个可行 ...

  10. 2018.09.23 codeforces 1053B. Vasya and Good Sequences(前缀和)

    传送门 考试的时候卡了一会儿. 显然这个答案只跟二进制位为1的数量有关. 还有一个显然的结论. 对于一个区间[l,r][l,r][l,r],如果其中单个数二进制位为1的数量最大值不到区间所有数二进制位 ...