一,通过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^是不是很开森