学习ASP.NET Core Razor 编程系列目录

学习ASP.NET Core Razor 编程系列一

在Razor页面应用程序中添加一个实体

在本篇文章中,学习添加用于管理数据库中的书籍的实体类。通过实体框架(EF Core)使用这些类来处理数据库。EF Core是一个对象关系映射(ORM)框架,它简化了编写数据库访问的代码。

创建的实体类被称为POCO类(“普通的CLR对象”)因为他们没有在EF Core中有任何依赖。它们定义存储在数据库中的数据的属性。

一、添加一个实体类

  1. 在Visual Studio 2017的解决方案资源管理器中,右键单击该RazorMvcBooks,在弹出菜单中选择,项目-->添加-->新建文件夹,修改文件夹名称为“Models”。如下图。

2. 鼠标右键单击“Models”文件夹。在弹出菜单中选择,添加-->类。类名为Book。如下图。

3.在book类中的代码文件中添加以下属性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; namespace RazorMvcBooks.Models
{
public class Book
{ public int ID { get; set; }
public string Name { get; set; }
public DateTime ReleaseDate { get; set; }
public string Author { get; set; }
public decimal Price { get; set; } }
}

其中ID字段必须是数据库中表Book的主键。

二、添加数据库上下文类

在Models文件夹中添加BookContext.cs类,继承自DbContext,操作方式如上第2点中的图所示,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore; namespace RazorMvcBooks.Models
{ public class BookContext:DbContext
{
public BookContext(DbContextOptions<BookContext> options) : base(options)
{ } public DbSet<Book> Book { get; set; } }
}

之前的代码中我们创建了一个DbSet<Book>类型的属性Book.在实体框架中,实体集合通过对应数据库中的表,实体对应表中的行。

三、添加数据库连接字符串

在Visual Studio 2017中的资源管理器中找到appsettings.json文件,用鼠标双击打开,在文件中添加一个连接字符串,代码如下。

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"BookContext": "Server=.\\sqlexpress;Database=Books;Trusted_Connection=True;MultipleActiveResultSets=true" } }

四、注册数据库上下文

在Visual Studio 2017中的资源管理器中找到startup.cs文件,用鼠标双击打开,在startup.cs文件的ConfigureServices方法中写入依赖注入容器注册数据库上下文的代码,具体代码如下。

using Microsoft.EntityFrameworkCore;
using RazorMvcBooks.Models; public void ConfigureServices(IServiceCollection services)
{ services.AddDbContext<BookContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("BookContext")));
services.AddMvc();
}

最后,在Visual Studio 2017中的菜单中选择“生成-->生成解决方案”对项目进行编译,以验证自己写的代码没有任何错误同。

学习ASP.NET Core Razor 编程系列二——添加一个实体的更多相关文章

  1. 学习ASP.NET Core Razor 编程系列十——添加新字段

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  2. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 四.创建一个Blazor应用程序 1. 第一种创 ...

  3. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  4. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(完)

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  5. 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上)

    学习ASP.NET Core Blazor编程系列一--综述 一.概述 Blazor 是一个生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 U ...

  6. 学习ASP.NET Core Razor 编程系列十四——文件上传功能(二)

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  7. 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  8. C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    C#中的函数式编程:递归与纯函数(二)   在序言中,我们提到函数式编程的两大特征:无副作用.函数是第一公民.现在,我们先来深入第一个特征:无副作用. 无副作用是通过引用透明(Referential ...

  9. 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

随机推荐

  1. hdu 2047递推

    A[N]表示以E或者F结尾的情况下的方案数,B[N]表示以O结尾的情况下的方案数,F[N]=3*A[N-1]+2*B[N-1] 同时,A[N]=2*B[N-1]+2*A[N-1],B[N-1]=A[N ...

  2. python模拟登录浙江大学彩云库

    前言: 群里一位朋友叫我帮他写 一个模拟登录的. 代码: import requests import time url="http://yk3.gokuai.com/web/index&q ...

  3. AndroidStudio中导入module(简单版)

    1.把要导入成Mudle的项目修改成符合Library的格式 修改该项目中bulid.gradle文件中第一行代码 把 apply plugin: 'com.android.application' ...

  4. win10 , JAVA安装 环境搭建

    一.关于下载地址及方式: 1.百度搜索JDK,进入下载官网,具体网址如下: click me!!! 2.根据你电脑的不同系统选择对应的下载,当然首先你要点击Accept License Agreeme ...

  5. Java AES加密案例

    AES加密原理 http://www.blogjava.net/amigoxie/archive/2014/07/06/415503.html PHP 加密 https://segmentfault. ...

  6. Java中的Lock与synchronized

    并发编程学习笔记之Lock与synchronized 一.什么是可重入锁 Lcok在Java中是一个接口,一般在面试问题中问到的可能是ReentrantLock与synchronized的区别.Ree ...

  7. SRE之道:创造软件系统来维护系统运行

    引言:本文作者Ben Treynor Sloss,Google 运维团队的高级副总裁,SRE 名称的发明者,在这里提供了他对SRE 的定义.  本文选自<SRE:Google运维解密>. ...

  8. 浅析设备管理的MTTR,MTTF,MTBF计算方法

    一般来说,对于设备的关键性指标的统计,国际惯例中有三个指标用来进行统计,它们分别是: MTTR(Mean Time To Repair),平均修复时间.计算方法是:总的故障时间/故障次数.计算公式为: ...

  9. Nginx负载均衡和反向代理的配置和优化

    负载均衡 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位, 反向代理 是指以代理服务器来接受internet上的请求,然后将请求转给内部的服务器 常见的负载均衡 1. ...

  10. CSS3之Border-radius

    1.属性介绍 border-radius:none|12.3px,取值不可为负数,表示边框圆角 相关属性:border-top-right-radius , border-bottom-right-r ...