asp.net core 1.1 dotnet 生成DbContext
来源:互联网 发布:局域网视频通话软件 编辑:程序博客网 时间:2024/05/31 06:21
环境
win7+vs2017+SqlServer 2012
目的
解决在vs2017创建net core 1.1 项目,生成 DbContext 文件
准备
- 创建一个空的 net core 1.1 的工程
运行项目能过访问 Controllers 中的方法
startup.cs 文件中
public void ConfigureServices(IServiceCollection services){ services.AddMvc(); }public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){ loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(ConfigureRoute); app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); });}private void ConfigureRoute(IRouteBuilder routeBuilder){ //Home/Index, 注意:等号两边不能有空格。 routeBuilder.MapRoute("Default", "{controller=Home}/{action=Index}/{id?}");}
安装包
. Microsoft.EntityFrameworkCore.Tools
. Microsoft.EntityFrameworkCore.Tools.DotNet
. 但是安装第二个包“Microsoft.EntityFrameworkCore.Tools.DotNet”最后提示不支持,因为net core 是 1.1 版本,Tools.DotNet 是 1.0 版本,那怎么解决呢?在最下面会提出解决办法如果没有安装上包“Microsoft.EntityFrameworkCore.Tools.DotNet”,在程序里面就会有问题
- 进行执行 dotnet 命令,打开如下图
. 打开之后切换到项目的目录,运行命令“dotnet ef migrations add v1”,会有如下提示
这是由于没有安装上包“Microsoft.EntityFrameworkCore.Tools.DotNet”,这个包是来处理 dotnet 命令的。
解决“Microsoft.EntityFrameworkCore.Tools.DotNet”包安装不上的办法
. 打开项目文件*.csproj,然后将下面代码复制到文件中保存
<ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0" /> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" /> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.0.0" /> </ItemGroup>
安装包都安装好之后,再运行命令“dotnet ef migrations add v1”提示
这是因为我们没有创建 DbContext.cs 文件
DbContext.cs 的代码using Microsoft.EntityFrameworkCore;
namespace LoginDemo.Models
{
public class LoginDemoDbContext : DbContext
{
/* 每一个DbSet 对应于数据中的一张表。
* 这里对应的是 Employees 表。
*/
public DbSet Employees { get; set; }public LoginDemoDbContext(DbContextOptions<LoginDemoDbContext> options) : base(options) { }}
}
然后再次运行命令“dotnet ef migrations add v1”提示
这是没有配置Startup配置Startup的代码如下
public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("AppSettings.json"); Configuration = builder.Build(); } public IConfigurationRoot Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddMvc(); // 添加 Entity Framework 服务,并且使用SQL Server 服务。 services.AddEntityFrameworkSqlServer().AddDbContext<LoginDemoDbContext> (option => option.UseSqlServer(Configuration["database:connection"])); }
保存好之后,再运行同样的命令,这是没看的报错,提示成功,
然后打开项目会看到多了2个文件
此时打开数据库查看:并没有当前数据库连接地址上的数据库和表
这是怎么回事呢?
因为还有一步没做,打开cmd,切换到项目*.csproj的目录,然后运行命令“dotnet ef database update”如下图
之后我们在打开数据库刷新下就可以看到连接的数据库和表了。
- asp.net core 1.1 dotnet 生成DbContext
- net core生成数据库,使用Scaffold-DbContext报错“‘Scaffold-DbContext’ is not recognized as the name of a cmdlet”
- 使用 dotnet watch 开发 ASP.NET Core 应用程序
- 使用 dotnet watch 开发 ASP.NET Core 应用程序
- IIS中的 Asp.Net Core 和 dotnet watch
- 【dotnet跨平台】最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
- 最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
- .NET Core dotnet 命令大全
- 在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包
- ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)
- ASP.NET Core 1.1 简介
- .NET Core 跨平台发布(dotnet publish)
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
- Asp.net WebApi + EF 单元测试架构 DbContext一站到底
- dotnet core项目升级到 .net core 2.0
- Asp.net core 通过Models 生成数据库的方法
- ASP.NET Core 介绍
- ASP.NET Core
- 网卡驱动程序igb ixgbe 介绍
- 作业
- PAT (Advanced Level) Practise 1088 Rational Arithmetic (20)
- 贵在坚持
- 业界首部安卓热修复宝典出炉!你想知道的一切都在这里了
- asp.net core 1.1 dotnet 生成DbContext
- JS获取当前时间
- u-boot分析之 DDR配置
- 设计模式——MVC
- spring boot mybatis 加事务
- 【Linux】【Opencv】【Python】安装opencv以及无法使用cv2.imshow()解决办法(Ubuntu14.04)
- CSS图片倒角
- 算法与数据结构系列
- SingleTask启动模式与HOME键问题