Aspnetcore2.0中Entityframeworkcore及Autofac的使用(附Demo)(
Posted mrliu90
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Aspnetcore2.0中Entityframeworkcore及Autofac的使用(附Demo)(相关的知识,希望对你有一定的参考价值。
一,通过Entityframeworkcore中DbFirst模式创建模型
这里只说一下Entityframeworkcore中DbFirst模式创建模型,想了解CodeFirst的可以自行度娘,还是在原有项目中创建一个Model类库,然后通过通过vs中NuGet的程序包管理控制台执行
安装EntityFrameworkCore类工具包,:
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
注意安装以下类库版本需与AspNetCore.Model自建类库的Core版本相适应。
通过执行以下命令生成实体类与上下文
Scaffold-dbcontext "Server=.;database=test1;Integrated Security=false;user id=****;password=*****" Microsoft.EntityFrameworkCore.SqlServer -outputdir Models
生成成功后要修改一下test1Context.cs中的代码
//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) //{ // if (!optionsBuilder.IsConfigured) // { // optionsBuilder.UseSqlServer(@"Server=zhang;database=test1;Integrated Security=false;user id=sa;password=123456"); // } //} //自定义定义构造器 public test1Context(DbContextOptions options):base(options) { }
注意:每次更新数据库都要修改test1Context.cs中的代码
新建BookService.cs
namespace AspNetCore.Service { public class BookService { private test1Context _context = null; public BookService(test1Context context) { this._context = context; } public Book Get(long id) { return _context.Book.Find(id); } } }
下一步我们就要通过Controller把数据呈现出来,在这里我们要把数据库连接放到appsettings.json配置文件里
{ "ConnectionStrings": { "connstr": "Data Source=.;Initial Catalog=test1;User ID=*****; Password=**********" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }
修改一下项目启动文件Startup.cs:
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); //配置上下文 services.AddDbContext<test1Context>(options => options.UseSqlServer(Configuration.GetConnectionString("connstr"))); //默认类库声明周期 services.AddScoped(typeof(BookService)); }
新建BookController中的代码:
public class BookController : Controller { //依赖注入 private readonly BookService _service = null; public BookController(BookService service) { this._service = service; } public IActionResult Index() { return Content($"第一本书的书名是[{_service.Get(1).Name}]") ; } }
结果:
^v^是不是很开森
以上是关于Aspnetcore2.0中Entityframeworkcore及Autofac的使用(附Demo)(的主要内容,如果未能解决你的问题,请参考以下文章
EntityFrame Work 6 Code First 配置字段为varchar 类型
EntityFrame Work 6 Code First 配置字段为varchar 类型
带有 EF6 和 dotConnect for oracle 的 aspnetcore 2.0
同一站点中的 asp net core 2.0 JWT 和 Openid Connect 身份验证
如何告诉 Entity Framework 我的 ID 列是自动递增的(AspNet Core 2.0 + PostgreSQL)?