使用SQL Server的ASP.NET 核心和EF 核心入门

by Santhakumar Munuswamy

  Posted on  03 十月 2016

  ASP.NET 核心


 

在本文中,我们将讨论如何在Windows中使用ASP.Net 核心和Entity 构架 核心开发用户管理应用程序。 在之前的文章中,我们讨论了对带有Windows上的hello world应用程序的ASP.Net 核心的理解。如果您想学习ASP.Net 核心及其功能,可以阅读以下链接:

在本文中,我们将详细讨论步骤: 

  • 先决条件
  • 创造 an ASP.NET 核心 网页 应用 on 视窗
  • 怎么样 to 安装 的 实体 构架 核心
  • 如何将Entity 构架 核心包添加到project.json文件
  • 创造 a 模型 类
  • 怎么样 to 寄存器 your 语境 与 依赖 注射
  • 怎么样 to 创造 我们的 数据库
  • 怎么样 to 创造 我们的 控制者 
  • 怎么样 to 创造 视图
  • 怎么样 to run 的 user management 应用

先决条件

  • 视觉效果 工作室 2015
  • .NET 核心 1.0

您要下载并安装免费的Visual 工作室 2015社区版。您可以从 视觉效果 Studio. 此外,您可以从Windows下载适用于Windows平台的.NET 核心 1.0。 。净 网站。 

创造 an ASP.NET Core Web Application on Windows

打开Visual 工作室2015。转到“文件”菜单,指向“新建”,然后单击“新项目”。将打开“新项目窗口”,您可以在Visual C#模板中选择一个已安装的模板,例如“ .NET 核心”,然后选择Asp.Net 核心 网页应用程序(.NET 核心),然后键入项目名称ASP.NETCoreWithEFCore。选择项目位置路径,然后单击确定按钮。


您可以选择模板“ 网页应用程序”,然后单击“确定”按钮


现在,您可以看到ASP.NETCoreWithEFCore项目结构,如下面的屏幕快照所示


怎么样 to install the Entity Framework Core

我们将使用EF 核心,并从Visual 工作室 2015中的NuGet程序包管理器控制台为数据库提供程序安装程序包。我们将按照以下步骤详细了解如何使用命令为SQL Server数据库安装EF 核心。 

  • 转到Visual 工作室工具,指向NuGet程序包管理器,然后单击程序包管理器控制台菜单
  • 有时之后,成功打包控制台管理器并准备就绪
  • 输入Install-Package Microsoft.EntityFrameworkCore.SqlServer并输入 
  • 有时,成功安装了Microsoft.EntityFrameworkCore.Sqlserver 1.0.1之后,我们必须等待一段时间才能还原软件包。 


  • 键入Install-Package Microsoft.EntityFrameworkCore.Tools –Pre和Enter 
  • 有时之后,成功安装了Microsoft.EntityFrameworkCore.Tool 1.0.0-preview2-final。然后,我们必须等待一些时间来还原软件包。


怎么样 to add Entity Framework Core package to project.json file

现在,您可以详细了解如何在project.json文件中配置实体框架核心软件包。

  • Go to Solution Explorer and 的n open project.json 文件
  • 现在,您可以验证“工具”部分,是否已配置实体框架核心程序包以及是否未配置特定程序包。
  • 现在,您可以添加“ Microsoft.EntityFrameworkCore.Tools”:“ 1.0.0-preview2-final”



创造 a model class

我们必须在项目中创建一个models文件夹。之后,您可以按照以下给定步骤将模型类和上下文类添加到models文件夹下。

转到“模型”文件夹,右键单击“模型”文件夹,然后指向“添加”,然后单击“类”。您可以选择一个类并输入类名称作为UserContext,然后单击“添加”按钮。 

同样,您可以在项目的“模型”文件夹下添加“用户”和“角色”类。

用户.cs

using System;

using System.Collections.Generic;

 

namespace ASP.NETCoreWithEFCore.Models

{

    public  用户

    {

        public int UserId { getset; }

        public string Name { getset; }

        public string Location { getset; }

 

        public List<Role> Roles { getset; }

    }

}

Role.cs

using System;

 

namespace ASP.NETCoreWithEFCore.Models

{

    public  Role

    {

        public int RoleId { getset; }

        public RoleType RoleTyp { getset; }

 

        public int UserId { getset; }

        public 用户 User { getset; }

    }

 

    public enum RoleType

    {

        Admin,

        User

    }

}

用户Context.cs

using System;

using Microsoft.EntityFrameworkCore;

 

namespace ASP.NETCoreWithEFCore.Models

{

    public  用户Context:DbContext

    {

        public UserContext(DbContextOptions<用户Context> dbcontextoption)

            :base(dbcontextoption)

        { }

 

        public DbSet<用户> Users { getset; }

        public DbSet<Role> Roles { getset; }

    }

}

怎么样 to register our context class with dependency injection

您可以在启动类中详细了解如何通过运行应用程序启动的依赖项注入来注册上下文类。

  • 转到解决方案资源管理器,打开Startup.cs类并添加以下名称空间并注册上下文类

启动文件

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.Hosting;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.DependencyInjection;

using Microsoft.Extensions.Logging;

using ASP.NETCoreWithEFCore.Models;

using Microsoft.EntityFrameworkCore;

 

namespace ASP.NETCoreWithEFCore

{

    public  Startup

    {

        public Startup(IHostingEnvironment env)

        {

            var builder = new ConfigurationBuilder()

                .SetBasePath(env.ContentRootPath)

                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)

                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)

                .AddEnvironmentVariables();

 

            if (env.IsDevelopment())

            {

                // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately.

                builder.AddApplicationInsightsSettings(developerMode: true);

            }

            Configuration = builder.Build();

        }

 

        public IConfigurationRoot Configuration { get; }

 

        // This method gets called by the runtime. Use this method to add services to the container.

        public void ConfigureServices(IServiceCollection services)

        {

            // Add framework services.

            services.AddApplicationInsightsTelemetry(Configuration);

            services.AddMvc();

 

            var sqlconnection = @"Server=DESKTOP-2MS3DR5\SANLAB;Database=Lab;userid=sa;password=password@123;";

            services.AddDbContext<用户Context>(dbcontextoption => dbcontextoption.UseSqlServer(sqlconnection));

        }

 

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

        {

            loggerFactory.AddConsole(Configuration.GetSection("Logging"));

            loggerFactory.AddDebug();

 

            app.UseApplicationInsightsRequestTelemetry();

 

            if (env.IsDevelopment())

            {

                app.UseDeveloperExceptionPage();

                app.UseBrowserLink();

            }

            else

            {

                app.UseExceptionHandler("/Home/Error");

            }

 

            app.UseApplicationInsightsExceptionTelemetry();

 

            app.UseStaticFiles();

 

            app.UseMvc(routes =>

            {

                routes.MapRoute(

                    name: "default",

                    template: "{controller=Home}/{action=Index}/{id?}");

            });

        }

    }

}

怎么样 to create our database

我们将创建一个数据库并为我们的模型创建表。 

  • 转到Visual 工作室工具,指向NuGet程序包管理器,然后单击程序包管理器控制台菜单
  • 有时之后,成功打包控制台管理器并准备就绪
  • 输入Add-Migration MyFirstMigration并输入 


如果您收到诸如“术语'Add-Migration'未被识别为cmdlet的名称”之类的错误,请关闭并重新打开Visual 工作室。

  • 输入Update-Database并输入

怎么样 to create our controller 

转到Controllers文件夹,右键单击Controllers文件夹,指向添加,然后单击New Item。您可以选择一个MVC控制器类,并键入类名称作为UserController,然后单击“添加”按钮。

用户Controller.cs

using Microsoft.AspNetCore.Mvc;

using ASP.NETCoreWithEFCore.Models;

using System.Linq;

// For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860

 

namespace ASP.NETCoreWithEFCore.Controllers

{

    public  用户Controller : Controller

    {

        private 用户Context usercontext;

 

        public UserController(用户Context context)

        {

            usercontext = context;

        }

        

 

        // GET: /<controller>/

        public IActionResult Index()

        {

            return View(usercontext.Users.ToList());

        }

 

        public IActionResult Create()

        {

            return View();

        }

 

        [HttpPost]

        [ValidateAntiForgeryToken]

        public IActionResult Create(用户 user)

        {

            if (ModelState.IsValid)

            {

                usercontext.Users.Add(user);

                usercontext.SaveChanges();

                return RedirectToAction("Index");

            }

            return View(user);

        }

    }

} 

怎么样 to create view

我们必须在Views文件夹中创建一个用户文件夹。之后,您可以按照以下步骤将视图页面添加到views文件夹下。

转到“用户”文件夹,右键单击“用户”文件夹,然后指向“添加”,然后单击“新建项目”。您可以选择“ MVC视图”页面,并输入文件名作为“索引”,然后单击“添加”按钮。

Index.cshtml

@model IEnumerable<ASP.NETCoreWithEFCore.Models.用户>

 

@{

    ViewBag.Title = "用户 Page";

}

 

<h2 ="panel-heading">用户 Dashboard</h2>

 

<p>

    <a asp-controller="用户" asp-action="创造">New User</a>

</p>

 

<table ="table table-responsive">

    <tr> 

        <th>用户 Id</th>

        <th>Name</th>

        <th>Location</th>

    </tr>

    @foreach (var item in Model)

    {

        <tr>

            <td>

               @Html.DisplayFor(modelItem=> item.UserId)

            </td>

            <td>

                @Html.DisplayFor(modelItem => item.Name)

            </td>

            <td>

                @Html.DisplayFor(modelItem => item.Location)

            </td>

        </tr>

    }

    

</table>

转到“用户”文件夹,右键单击“用户”文件夹,然后指向“添加”,然后单击“新建项目”。您可以选择“ MVC视图”页面,并将文件名键入“创建”,然后单击“添加”按钮。

创造.cshtml

@model ASP.NETCoreWithEFCore.Models.用户

 

@{

    ViewBag.Title = "New User";

}

 

<h2>@ViewData["Title"]</h2>

 

<form asp-controller="用户" asp-action="创造" method="post" ="form-horizontal" role="form">

    <div ="form-horizontal">

        <div asp-validation-summary="All" ="text-danger"></div>

        <div ="form-group">

            <label asp-for="Name" ="col-md-2 control-label"></label>

            <div ="col-md-10">

                <input asp-for="Name" ="form-control" />

                <span asp-validation-for="Name" ="text-danger"></span>

            </div>

        </div>

        <div ="form-group">

        <label asp-for="Location" ="col-md-2 control-label"></label>

        <div ="col-md-10">

            <input asp-for="Location" ="form-control" />

            <span asp-validation-for="Location" ="text-danger"></span>

        </div>

    </div>

         

    <div ="form-group">

        <div ="col-md-offset-2 col-md-10">

            <input type="submit" value="创造" ="btn btn-default" />

        </div>

    </div>

 </div>

 

</form>  

怎么样 to Run the User Management application

现在,您可以运行用户管理应用程序,它将在浏览器中构建并打开。




源代码

您可以将免费源代码下载到 下载

参考

结论

我希望您理解在Windows上使用EF 核心开发ASP.Net 核心 网页应用程序并在其上运行。我已经介绍了所有必需的东西。如果您发现我在本文中错过的任何内容,请告诉我。请分享您的宝贵意见或建议。

 


0cea5538-56d2-4bd0-b934-e87613c33aef | 1 | 5.0 | 96d5b379-7e1d-4dac-a6ba-1e50db561b04

分享:

关于 的 作者
Santhakumar Munuswamy是一位经验丰富的解决方案架构师,并且是Cloud / AI解决方案中最有价值的专家。他在解决方案设计,软件产品开发,技术文档,Web和云应用程序的项目管理方面拥有大约14年的经验。他在不同领域(汽车,电信,医疗保健,物流和仓库自动化等)的IT行业经验丰富,担任过技术架构师,Genesys顾问,技术负责人,团队负责人和开发人员。他在指导和指导高潜力开发人员方面经验丰富。

跟着我: 脸书, 推特, 谷歌加, 领英
博客评论由 领英


月份清单

通讯

在发布新帖子时得到通知。


社区徽章