图像和文字详解远程计划ASP,创立实体框架数据模型

真觉得自个儿的知识面依旧比较窄,从前,居然还不通晓SqlLocalDb。

Contoso University  Web 应用程序

你会在那些课程中营造的应用程序是一个简易的高等高校网址。

用户能够查阅和革新学生、
课程和教育者新闻。那里有多少个显示屏,您将创造。

亚洲必赢官网 1 

亚洲必赢官网 2

本条网址的用户界面样式一贯看似由放手的模板,生成的剧情,以便本课程能够集中重点精力怎样选取实体框架。

话外篇:

       
在本篇小说中,大家上学怎么样选取实体框架的“Code First Migrations ”(也叫做代码先行作用)工具,使用个中的“迁移”功效对模型类举香港行政局地修改,同时三头更新对应数据库的表结构。

SqlLocalDb是吗?其实正是简化SQL Server的地点数据库,能够那样子说,SQL
Server既能够看作长途,也得以做地点,

系统必备组件

趋势和荧屏截图在本教程中一经你正在使用Visual Studio
2012或Visual
Studio 二零一二速成网站,最新的立异与停止201三 年 7 月,安装的 Windows Azure SDK。你可以拿走那总体与下部的链接:

Windows Azure SDK 以 Visual Studio
2012

假若你有安装了 Visual
Studio,下面的链接将设置任何贫乏的零件。如果您未曾 Visual Studio,该链接将安装 Visual Studio 二〇一三速成网址。您能够采用 Visual Studio 2012年,但一些所需的次序和显示器会迥然差异。

     
 由于觉得自个儿的机械相比慢,配置不好,所以近期想把后面包车型地铁品类安顿到实验室的服务器上,可是出于常不在实验室,所以在想能不可能中远距离计划。由以前天专门切磋了刹那间有血有肉的长河,上边和豪门分享一下。本人新手,还望大虾勿喷,有怎么样难点,还望高手引导。

       
默许意况下,当您使用实体框架的“Code First Migrations ”工具,实体框架会活动创立2个数据库。“代码先行成效”首先会添加1个新表到数据库中,以便跟踪数据库的架构是不是与模型类同步。要是它们不联合,实体框架会抛出一个不当。那样开发人士在开发时就能更易于地追查难题出在怎么着地点,而任何的开发格局就只可以在运维时通过模糊的错误音讯查找什么地方出错了。 

而SqlLocalDb只好作为本土使用。说的第二手一点,SqlLocalDb就是三个轻量级的基于本地的T-SQL数据库,全称:SQL
Server Express LocalDb。

成立 MVC Web 应用程序

开辟 Visual Studio 并创设3个新 C#
项目命名字为”ContosoUniversity”使用ASP.NET MVC 四 Web
应用程序
模板。请确定保证您的目的.NET 框架
4.5
 (你会利用enum的属性,并且,需要.NET
4.5)。

亚洲必赢官网 3

新的 ASP.NET MVC 4 项目对话框中甄选的网络使用模板。

Razor视图引擎选取,和开创二个单元测试项目的复选框处于清除状态的假日。

单击确定.

亚洲必赢官网 4

1、本文实验环境:

1、设置代码优先迁移的模子更改 

         即便您使用的是Visual Studio 二零一三,从消除方案能源管理器中双击Test.mdf文件,会打开数据库管理工科具。当中Visual Studio Express For Web版本的VS将显得数据库能源管理器,Visual Studio 二零一二其余版本会突显服务器财富管理器。要是您使用的是Visual Studio 20第10中学,使用SQL Server对象能源管理器。 
         一)在服务器能源管理器中—》“数据连接”中(数据库管理工科具、数据库浏览器、服务器能源管理器或SQL Server对象能源管理器),右键单击developer\sqlexpress.Test.dbo,然后选拔删除。如下图一、图二。图一是去除连接,图二是去除数据库。

 亚洲必赢官网 5

 图1

 

 亚洲必赢官网 6

图2

      二)执行菜单–》工具–》生成–》生成消除方案,以保险未有不当。 
       三)从菜单–》工具菜单中,单击库程序包管理器–》程序包管理器控制台。如下图。

 亚洲必赢官网 7

 

            四)在Visual Studio的下方窗体中的“程序包管理器控制台”窗口的“>”提醒符下输入“Enable-Migrations -ContextTypeName MvcApplication1.Models.BookDBContext”。如下图。

 亚洲必赢官网 8

         
伍)在执行完Enable-Migrations命令之后(如上海体育地方所示),会在类型中开创一个新的文书夹“Migrations”, 在这些文件夹中开创3个Configuration.cs文件。如下图。

 亚洲必赢官网 9

           陆)在Visual Studio中开拓Configuration.cs文件。用上面包车型客车代码替换Configuration.cs文件的Send方法:

 

namespace MvcApplication1.Migrations

{

    using System;

    using System.Data.Entity;

    using System.Data.Entity.Migrations;

    using System.Linq;

    using MvcApplication1.Models;



    internal sealed class Configuration : DbMigrationsConfiguration<MvcApplication1.Models.BookDBContext>

    {

        public Configuration()

        {

            AutomaticMigrationsEnabled = false;

        }



        protected override void Seed(MvcApplication1.Models.BookDBContext context)

        {

            //  This method will be called after migrating to the latest version.



            //  You can use the DbSet<T>.AddOrUpdate() helper extension method 

            //  to avoid creating duplicate seed data. E.g.

            //

            //    context.People.AddOrUpdate(

            //      p => p.FullName,

            //      new Person { FullName = "Andrew Peters" },

            //      new Person { FullName = "Brice Lambson" },

            //      new Person { FullName = "Rowan Miller" }

            //    );

            //

            context.Books.AddOrUpdate(i => i.BookID,

        new Book

        {

            Name = "When Harry Met Sally",

            PublishDate = DateTime.Parse("1989-1-11"),

            Category = "MS",

            AuthorID=1,

            Numberofcopies=12,

            Price = 7.99M


        },


         new Book

         {

             Name = "Ghostbusters ",

             PublishDate = DateTime.Parse("1984-3-13"),

              Category = "MS",

            AuthorID=1,

            Numberofcopies=112,

             Price = 8.99M

         },

         new Book

         {

             Name = "DB 2",

             PublishDate = DateTime.Parse("1986-2-23"),

               Category = "IBM",

            AuthorID=1,

            Numberofcopies=22,

             Price = 9.99M,

         }

   );
        }

    }

}

 

           柒)使用鼠标右键单击Book下的新民主主义革命波浪线,在弹出菜单中采用“解析”菜单项,然后在弹出菜单中选用“MvcApplication1.Models”;如下图。

 亚洲必赢官网 10

在经过如此做了今后,Visual Studio会自动在代码中加进using语句如下:

 

using MvcApplication1.Models;

 

 

       
在“程序包管理器控制台”窗口中实践了“Code First Migrations ”作用中的“迁移”命名之后,代码会自动调用Send 方法(即程序包管理器控制台会调用此办法立异数据库中的数据),并且实施该办法时壹旦代码中的对象数据不存在则插入,假使存在则开始展览翻新。 

二、迁移数据库
       一) 如若那时候在Visual Studio中按Ctrl-Shift-B(或然菜单–>生成–>生成消除方案)来编写翻译项目,将会晤世编译不了的百无一用。如下图。 
       2) 接下来要确立二个DbMigration类来拓展最先迁移。使用这一个迁移命名成立3个新的数据库,那正是为啥小编在上一步中剔除了Test.mdf文件。 
      
三) 在程序包管理器控制台窗口中,输入指令“dd-migration Initial”创立起来迁移。当中“Initial”的命名是任意的,是用来命名新创造的动员搬迁文件。如下图。

 亚洲必赢官网 11

 

          
4)“Code First Migrations ”效用中的“迁移”命名会在搬迁文件夹中的创立八个新的类公事(名字为{DATESTAMP}_Initial.cs),而且这一个类中早就包蕴了创设数据库框架结构的代码。迁移文件名的命名规则中有二个一定的小时戳,用以支持排序。检查{DATESTAMP}_Initial.cs文件,它涵盖了创办Books表的数据库的认证。那个{DATESTAMP}_Initial.cs文件将运转并创办数据库架构。然后运转Send方法为数据库填充测试数据。 
图像和文字详解远程计划ASP,创立实体框架数据模型。          
5) 在先后包管理器控制台,输入指令“update-database”来创立数据库,并履行Send方法。如下图一,图二。

 亚洲必赢官网 12

 图1

亚洲必赢官网 13

 

图2

 

      
假诺你拿走三个不当,提醒表已经存在,不能够被创制,它也许是因为你正在周转应用程序,在您剔除了数据库之后,执行更新数据库以前。(如上图壹)。

      在那种场地下,再度删除Test.mdf文件,然后重试“update-database”命令。如上海体育地方2。要是如故出现谬误,请删除该公文夹和剧情,然后起始在这一个页面的顶部(也正是剔除Test.mdf文件然后开始展览启用,迁移)的验证。 
          陆) 按F五运作应用程序,在浏览器中浏览Books/Index网站。会议及展览示Send方法中填充到数据库中的数据。如下图。

 亚洲必赢官网 14

 

好,废话不多说。

确立了该网址的风格

几个大致的改观将进行网址菜单、 布局和主页。

打开Views\Shared\_Layout.cshtml,然后用以下代码替换该公文的内容。杰出呈现所做的更动。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title - Contoso University</title>
        <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        @Styles.Render("~/Content/css")
        @Scripts.Render("~/bundles/modernizr")
    </head>
    <body>
        <header>
            <div class="content-wrapper">
                <div class="float-left">
                    <p class="site-title">@Html.ActionLink("Contoso University", "Index", "Home")</p>
                </div>
                <div class="float-right">
                    <section id="login">
                        @Html.Partial("_LoginPartial")
                    </section>
                    <nav>
                        <ul id="menu">
                            <li>@Html.ActionLink("Home", "Index", "Home")</li>
                            <li>@Html.ActionLink("About", "About", "Home")</li>
                            <li>@Html.ActionLink("Students", "Index", "Student")</li>
                            <li>@Html.ActionLink("Courses", "Index", "Course")</li>
                            <li>@Html.ActionLink("Instructors", "Index", "Instructor")</li>
                            <li>@Html.ActionLink("Departments", "Index", "Department")</li>
                        </ul>
                    </nav>
                </div>
            </div>
        </header>
        <div id="body">
            @RenderSection("featured", required: false)
            <section class="content-wrapper main-content clear-fix">
                @RenderBody()
            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; @DateTime.Now.Year - Contoso University</p>
                </div>
            </div>
        </footer>

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>

那段代码进行以下改变:

  • “小编的 ASP.NET MVC
    应用程序”和”您的徽标在此处”的模板实例替换为”Contoso University”。
  • 加大校动用在本教程后面包车型地铁多少个操作环节。

Views\Home\Index.cshtml,用以下代码,以裁撤有关 ASP.NET 和 MVC
模板段落替换该文件的始末:

@{
    ViewBag.Title = "Home Page";
}
@section featured {
    <section class="featured">
        <div class="content-wrapper">
            <hgroup class="title">
                <h1>@ViewBag.Title.</h1>
                <h2>@ViewBag.Message</h2>
            </hgroup>
        </div>
    </section>
}

Controllers\HomeController.cs,将值更改为ViewBag.Message Index操作方法中为”欢迎来到
Contoso 高校 !”,如上面包车型大巴以身作则所示:

public ActionResult Index()
{
    ViewBag.Message = "Welcome to Contoso University";

    return View();
}

按 CT帕杰罗L + F5 以运营网址。你见到主页与主菜单。

亚洲必赢官网 15

      Windows Server 2012 R2

第三,怎么设置这几个SqlLocalDb?

开创数据模型

接下去,您将创制实体类为 Contoso
University 中的应用。你将开端与以下四个实体:

亚洲必赢官网 16

还有StudentEnrollment实业之间的三个一对多涉及和CourseEnrollment实业之间是一对多的关联。换句话说,学生能够在任意数量的课程,并自然能够有专擅数量的学习者加入了它。

在以下部分中,您将成立3个类,用于种种那个实体。

假使你尝试编写翻译该类型,在您成功全部这么些实体类的始建在此之前,你就会取得编写翻译器错误。

      SQL Server 2012 Express

一)倘若设置过Visual Studio 20一伍、201柒,1般已经安装到了微型总括机里。

学生实体

亚洲必赢官网 17

模型文本夹中,创建Student.cs和现有代码替换为以下代码:

using System;
using System.Collections.Generic;

namespace ContosoUniversity.Models
{
    public class Student
    {
        public int StudentID { get; set; }
        public string LastName { get; set; }
        public string FirstMidName { get; set; }
        public DateTime EnrollmentDate { get; set; }

        public virtual ICollection<Enrollment> Enrollments { get; set; }
    }
}

StudentID属性将变成此类对应的数据库表的主键列。暗中同意情形下,实体框架将解释是命名的ID类名ID作为主键的性质。

Enrollments本性是八个导航属性。导航属性持有此实体相关的别的实体。在那种气象下,二个Student实体的Enrollments属性将保存全数的Enrollment实业的可怜Student实业相关的。换言之,假如某一给定的Student行在数据库中有多少个相关的Enrollment
(包涵在其StudentID的外键列中的那一个学生主键值的行),该Student实体Enrollments导航属性将含有这多个Enrollment实体。

导航属性日常定义为virtual中,以便他们得以应用有个别实体框架成效,如延期加载。(延迟加载将稍后解释,读取相关数据学科稍后在本体系中。

如若二个导航属性可以容纳五个实体
(如多多或二个壹对多关系),其种类必须是1个列表条目能够被抬高、
删除和换代,如ICollection.

     Visual Studio 2013

     那里以Visual Studio 20壹7为例,在Visual Studio
Installer中的单个组件页面中,能够看到该零件已经棉被服装置(冰雪蓝框框部分):

登记实体

亚洲必赢官网 18

模型文本夹中,创造Enrollment.cs和现有代码替换为以下代码:

namespace ContosoUniversity.Models
{
    public enum Grade
    {
        A, B, C, D, F
    }

    public class Enrollment
    {
        public int EnrollmentID { get; set; }
        public int CourseID { get; set; }
        public int StudentID { get; set; }
        public Grade? Grade { get; set; }

        public virtual Course Course { get; set; }
        public virtual Student Student { get; set; }
    }
}

等级属性是枚举。问号后Grade品类证明提示Grade属性是可以为
null。为 null 的水平是不一样于零级 — — null
意味着等级鲜为人知或从不被派遣。

StudentID性情是二个外键,且相应的导航属性是StudentEnrollment实业是与3个Student实业相关联,所以该属性只好容纳一个十足的Student实体
(不像Student.Enrollments导航属性你前边所述,而数组能够存放多个Enrollment实体)。

CourseID品质是二个外键,且相应的导航属性CourseEnrollment实业是与三个Course实体相关联。

     项目为:ASP.NET MVC
伍.0,使用的是LocalDB数据库

 
  亚洲必赢官网 19

课程实体

亚洲必赢官网 20

模型文件夹中,创制Course.cs,现有代码替换为以下代码:

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace ContosoUniversity.Models
{
    public class Course
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int CourseID { get; set; }
        public string Title { get; set; }
        public int Credits { get; set; }

        public virtual ICollection<Enrollment> Enrollments { get; set; }
    }
}

Enrollments性格是一个导航属性。Course实体能够与人身自由数量的Enrollment实体。

我们会说愈来愈多关于[DatabaseGenerated(DatabaseGeneratedOption.None)]在接下去的科目中的属性。基本上,此属性允许你为该学科而不是生成的数据库输入的主键。

二、使用Web
Deploy远程布置的准绳

2)恐怕到Visual Studio 20一七安装包安装该器件:

创建Database Context

坐标给定的数据模型的实业框架功用的主类是数据库上下文类。通过从System.Data.Entity.DbContext.aspx)类派生来创制此类。在你的代码中你钦命数据模型中总结怎样实体。您还足以自定义某个实体框架作为。在那一个体系中,类名称叫SchoolContext.

始建贰个文件夹命名DAL (为数据访问层)。在该文件夹中开创3个新的类公事,命名字为SchoolContext.cs,和现有的代码替换为以下代码:

using ContosoUniversity.Models;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;

namespace ContosoUniversity.DAL
{
    public class SchoolContext : DbContext
    {
        public DbSet<Student> Students { get; set; }
        public DbSet<Enrollment> Enrollments { get; set; }
        public DbSet<Course> Courses { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }
    }
}

此代码创制三个DbSet.aspx)属性为每一种实体集。在实体框架术语中,实体集平凡对应于数据库表,和二个实体对应于表中的壹行。

OnModelCreating.aspx)方法中的modelBuilder.Conventions.Remove讲话能够免备表名称正在趋向多元化。要是您不这么做,所生成的表将命名称叫StudentsCoursesEnrollments。相反,表名称将是StudentCourse
Enrollment。表名称应当多数开发商不允许。本学科使用的是单数格局,但主要的一点是您能够采用哪个你更爱好通过包罗或简捷下边那行代码的款型。

      Web
Deploy可以用于地点和远程安顿Web项目,使用Web
Deploy陈设时有如下供给:

     64位:

SQL 服务器特快专递 LocalDB

LocalDB是一个轻量级版本
SQL Server 表示数据库引擎的按需运转和平运动行在用户情势下。LocalDB 运转的 SQL Server Express
使你能够运用数据库的.mdf文本作为特种的推行办法。日常情状下,LocalDB 数据库文件保留在 web
项指标App_Data文本夹中。在 SQL Server
Express用户实例成效还使你能够运用.mdf文件,但不引进应用用户实例的功能;因而,LocalDB
被推举使用的.mdf文件。

常常 SQL Server Express 的并不用于生产的 web
应用程序。LocalDB 越发不推荐用于生产贰个 web
应用程序因为它不设计工作的不法入境者。

在 Visual Studio 二零一二及然后的版本中,暗中认可境况下,Visual Studio 安装 LocalDB。在 Visual Studio 2010 及更早版本中,在私下认可景况下,Visual
Studio ; 安装 SQL Server Express (无 LocalDB)您必须手动安装它,假如您利用的 Visual Studio 20十。

在本教程中您将采用LocalDB,以便数据库能够储存在.mdf文件所在的App_Data文本夹中。打开根Web.config文本并到connectionStrings汇集中,添加四个新的连接字符串,如上边包车型客车示范所示。(请确定保障您更新Web.config文本中的根项目文件夹。其它,还有 Web.config文本是您不需求更新的视图子文件夹中。)

 <add name="SchoolContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=ContosoUniversity;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\ContosoUniversity.mdf" providerName="System.Data.SqlClient" />

暗中同意情状下,实体框架查找名字为DbContext
(此项目SchoolContext ) 相同的总是字符串。您曾经添加的接连字符串钦点三个名叫ContosoUniversity.mdf位于App_Data文本夹中的
LocalDB 数据库。越多的音信,请参见ASP.NET
Web 应用程序的 SQL
服务器连接字符串.

实在,您不要求钦命的连天字符串。假如您不提供连接字符串,实体框架将创立1个为你
;不过,数据库只怕无法在您的应用程序的App_data文本夹中。将创造数据库的新闻,请参见代码第一次到新的数据库.

connectionStrings聚集还存有一个名称叫DefaultConnection的用来成员身价数据库的再而三字符串。在本教程中,您不会使用成员身份数据库。八个再而三字符串之间的唯一分裂是数据库名称和名称属性值。

       1.急需设置Web
Deploy ,上面地址:http://www.iis.net/downloads/microsoft/web-deploy

   
 亚洲必赢官网 21

设置和执行代码第壹回迁移

当你首先次始发开发应用程序时,您的数据模型更改频仍,而且每一趟得到与数据库不1起的模型更改。您能够安顿实体框架能够活动删除同样珍视新创造该数据库的每一回变更数据模型。那不是一个难点在开发的初期,因为测试数据是很不难重新创造,不过你曾经布署到生产后您平凡想要更新数据库架构,而不删除数据库。迁移效用使代码第贰要更新数据库,而不会删除并再次创造它。早在开发周期中的二个新的品类你恐怕想要使用DropCreateDatabaseIfModelChanges.aspx) ,能够去除、
重新创立和再一次安装为种子数据库每便模型更改。1位,你准备布置您的应用程序,您可以转移为的搬迁方法。在本教程中,您将仅使用迁移。有关的详细音信,请参见代码第二回迁移和搬迁截屏录像体系.

 

    32位:

启用代码第三回迁移

  1. 工具菜单上,单击库程序包管理器,然后次第包管理器控制台.

    亚洲必赢官网 22

  2. PM>升迁符下输入以下命令:

    enable-migrations -contexttypename SchoolContext
    

    亚洲必赢官网 23

    此命令在 ContosoUniversity
    项目中,创立五个迁移文本夹和它在该公文夹中放二个Configuration.cs文本,您能够编写配置迁移。

    亚洲必赢官网 24

    Configuration类包涵成立数据库时,每趟换代数据模型更改后调用的Seed方法。

    internal sealed class Configuration : DbMigrationsConfiguration<ContosoUniversity.Models.SchoolContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
        }
    
        protected override void Seed(ContosoUniversity.Models.SchoolContext context)
        {
            //  This method will be called after migrating to the latest version.
    
            //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
            //  to avoid creating duplicate seed data. E.g.
            //
            //    context.People.AddOrUpdate(
            //      p => p.FullName,
            //      new Person { FullName = "Andrew Peters" },
            //      new Person { FullName = "Brice Lambson" },
            //      new Person { FullName = "Rowan Miller" }
            //    );
            //
        }
    }
    

    Seed措施的目标是使你能够向数据库中插入测试数据后代码第叁次创造或更新它。

        二.设置Web Deploy之后,还亟需启用IIS
的——管住服务,打开Windows
Server的服务器管理器,点击添加剧中人物和法力:

 
  亚洲必赢官网 25

树立了种子法

种子.aspx)方法运维时代码第二回迁移制造数据库和每一遍它将创新到最新的动员搬迁数据库。种子法的目标是为着使你能够将数据插入到表在此以前应用程序访问数据库第壹次。

在初期版本的代码优先,迁移被假释从前,它是经常的Seed艺术来插入测试数据,因为在开发进程中的种种模型修改数据库不得不被完全除去和重复创建从零开首。与代码第3遍迁移,测试数据保存后数据库更改,由此包罗种子.aspx)方法中的测试数据壹般不是须要。事实上,你不想要插入测试数据,假设您将运用迁移将数据库安顿到生育,因为Seed艺术将运营在生养中的Seed方法。在那种状态下您愿意Seed措施向数据库中插入你想要在生产中插入的数据。例如,您恐怕想要包含实际部门名称Department表中,当应用程序在生养中可用的数据库。

对于本课程,您将选拔迁移的布署,但你的Seed主意将插入测试数据无论怎么样为了使它进一步轻松地查看应用程序的效率而无需手动插入大量的多少的干活。

  1. Configuration.cs文本的剧情替换为以下代码中,将测试数据加载到新的数据库。

    namespace ContosoUniversity.Migrations
    {
       using System;
       using System.Collections.Generic;
       using System.Data.Entity.Migrations;
       using System.Linq;
       using ContosoUniversity.Models;
    
       internal sealed class Configuration : DbMigrationsConfiguration<ContosoUniversity.DAL.SchoolContext>
       {
          public Configuration()
          {
             AutomaticMigrationsEnabled = false;
          }
    
          protected override void Seed(ContosoUniversity.DAL.SchoolContext context)
          {
             var students = new List<Student>
                {
                    new Student { FirstMidName = "Carson",   LastName = "Alexander", 
                        EnrollmentDate = DateTime.Parse("2010-09-01") },
                    new Student { FirstMidName = "Meredith", LastName = "Alonso",    
                        EnrollmentDate = DateTime.Parse("2012-09-01") },
                    new Student { FirstMidName = "Arturo",   LastName = "Anand",     
                        EnrollmentDate = DateTime.Parse("2013-09-01") },
                    new Student { FirstMidName = "Gytis",    LastName = "Barzdukas", 
                        EnrollmentDate = DateTime.Parse("2012-09-01"
    

        亚洲必赢官网 26       

3)到SQL
Server下载中央下载SQL
Server
Express:

    之后点击下一步: 

下载之后,打开该引用,并点击“下载介质”:

       亚洲必赢官网 27

亚洲必赢官网 28

       亚洲必赢官网 29

在弹出的页面中,选用LocalDB(第多少个),点击下一步下载SqlLocalDB.msi

       亚洲必赢官网 30

亚洲必赢官网 31

      在那里需求勾选“管理服务”,这一步格外首要。

注:SQL Server 201陆 Express
LocalDB微软已经不再提供,方今为新型的,也正是上述的20一七本子。

      亚洲必赢官网 32

4)百度网盘下载:

      之后下一步,等待实现都部队署即可。完结之后再服务列表中会多出Web
Management Service服务,并保险该服务运转。

亚洲必赢官网 33

      亚洲必赢官网 34

亚洲必赢官网 35

    注意,假使该服务未有运行,大概未有启用“管理服务”效率,则在采纳Web
Deploy布置项目时会遇到如下错误:“未能连接到长途计算机,请确认保障在中远距离总计机上设置了
Web Deploy 并运行了所需的历程(“Web Management Service”)”:

依照系统项目安装差别的SqlLocalDB。

      亚洲必赢官网 36

第二、连接SqlLocalDB

     
3.配置好管理服务之后,接下去须要进入IIS中通过管克制务来开始展览对应的设置:

一、打开Visual Studio
2017,依次点击“视图”(菜单栏)->“服务器财富管理器”,将会打开“服务器财富管理器”窗口:

      在我们启用管理服务后,进入IIS,会多出管理服务选项:

亚洲必赢官网 37

      亚洲必赢官网 38

贰、右键点击“数据连接”,在弹出的上下文菜单中选拔“添加连接”,在弹出的窗口师长“服务器名”设置为(LocalDb)\MSSQLLocalDB,如下图所示:

     
双击管理服务,对IIS进行布局,那里小编保持了私下认可的设置,您能够根据本身的情况举行设置:

亚洲必赢官网 39

     亚洲必赢官网 40

接下来附加二个称呼为MusicDBContext.mdf的数据库文件(文件能够团结定义)并点击明确,此时,MusicDBContext.数据库作为私下认可的数据库,大家得以挑选SQLLocalDB中的其余已有数据库。

     四.安排远铺排Web项指标账户

变更的连天字符串如下:

   
基于安全着想,我们最棒提供单身的账户来布局Web项目,同时对于IIS中站点,能够钦定哪些用户才享有安插应用程序到此站点的权位。

Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=C:\Users\CNC\Desktop\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True

    首先点击”IIS 管理器用户”:

大家可以将mdf文件的路径改为相对路径:

    亚洲必赢官网 41

Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True

    然后点击”添加用户”:

其叁,编写程序对已有多少的读取

    亚洲必赢官网 42

如下代码所示:

     然后安顿账户名和密码:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MusicDBContext;Integrated Security=True";
            SqlConnection connection = new SqlConnection(connectionString);
            SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Musics",connection);
            DataTable table = new DataTable();
            adapter.Fill(table);
            var result = (from row 
                          in table.Rows.Cast<DataRow>()
                          select
                          new { ID = (int)row[0], Title = (string)row[1], ReleaseDate = (DateTime)row[2] });
            result.ToList().ForEach(x => Console.WriteLine($"{x.ID},{x.Title},{x.ReleaseDate}"));
        }
    }
}

   亚洲必赢官网 43

运维结果如下:

   配置达成之后,接下去需求安装站点的用户权限。

亚洲必赢官网 44

 
五.安排站点用户权限

 
注:MusicDBContext.mdf能够在百度网盘下载,地址:

  首先点击您程序将要公布到的站点,例如本文为Default Web
Site.之后在治本采用中式点心击”IIS 管理器权限”:

第陆、1些关于SqlLocalDB的参考资料

  亚洲必赢官网 45

  之后点击“允许用户”:

 

 亚洲必赢官网 46

 将事先大家添加的iepi用户增进到选拔的站点权限中:

 亚洲必赢官网 47

末段点击分明,配置停止。

 三、使用Visual Studio
20壹三远距离布署项目

在发表项目事先,咱们供给对将要发表的站点(例如那里的
Default Web Site)根目录实行部分权力配置。也正是”Local Service”账户必要有改动站点目录的权限。那里大家的“Default Web
Site”的目录对于着:

C:\inetpub\wwwroot,因而大家右键wwwroot文件件,采纳属性——安全——编辑,添加Local
Service账户,并勾选”修改“权限“

亚洲必赢官网 48

 

壹经未有进展以上的权能配置则会在公告的时候唤醒无法在站点的情理目录下开创文件,没有开创权限。

在布署好站点的物理目录权限之后咱们起首公布web项目:

 

右键项目选用”发布”:

  亚洲必赢官网 49

 

   然后新建3个陈设文件,当然也得以采取在此以前的,建议新建3个。

  亚洲必赢官网 50

事后点击下一步,节奏配置 Web Deploy:

  亚洲必赢官网 51

评释:服务器:输入IP地址即可

        站点名称:格式为”站点名称“/”应用程序名称”

        用户密码即为上面大家配备的用户密码。

       
目的U哈弗L:一般格式:

     
 之后点击验证,出现亚洲必赢官网 52意味着消息无误,能够开始展览公布了。接下来点击下一步,直到发布完结,那里由于大家运用的是LocalDB,因而大家不用实行数据库配置。

四、配置LocalDb数据库

       LocalDB的是1个SQL Server Express轻量级版本的数据库引擎。
它在用户形式下运维、执行。LocalDB的运作在二个相当的SQL Server
Express的执行形式,所以同意你使用MDF文件数据库。常常情形下,LocalDB的数据库文件都保留在web项指标App_Data文件夹上面。

      注意:亚洲必赢官网 ,在生养条件的Web应用程序中,大家不引入您使用SQL Server
Express。
越发, LocalDB不应该被用于Web应用程序的生产条件,因为它设计之初不须要运用IIS
然则,LocalDB的数据库能够很不难地迁移​​到SQL Server或SQL
Azure中——摘自《ASP.NET MVC 五 – 创设连接字符串(Connection
String)并利用SQL Server
LocalDB》.

     明白LocalDB之后,我们如何让大家的ASP.NET
MVC项目能访问呢?首先,我们须要设置大家的花色,将数据库文件包蕴到花色中:

     亚洲必赢官网 53

  然后再也宣布。

此后在站点物理路径对于的应用程序目录下会有对于的App_Data文件夹,个中包蕴了我们的数据库文件。

然后打开 SQL Management Studio.并选择(LocalDb)\v1一.0,Windows
身份验证登六,然后附加我们项目标数据库。

随着在IIS中期维修改项目相应应用程序池的标识为”Local
System”。原因参考这里.

 

在成就上述全体手续之后,我们的富有工作便已经完结了,在浏览器中输入地方就足以访问大家的Web了。附图两张:

亚洲必赢官网 54

亚洲必赢官网 55

  

        

网站地图xml地图