摘要
之前尝试了,新建asp.net core站点,那么如何和mysql建立连接,如果操作mysql?本篇将尝试使用EntityFrameworkCore进行mysql的操作。
一个例子
首先新建一个空的Asp.net core站点,如图
安装MySql.Data.EntityFrameworkCore
安装成功
这时你可以在project.json中看到MySql.Data.EntityFrameworkCore依赖的配置
新建一个User类
public classUser
{public int Id { set; get; }public string Name { set; get; }public DateTime Dt { set; get; } =DateTime.Now;
}
这里使用 db first方式进行数据库的操作,添加一个test的数据库,然后新建一个user表
添加数据库上下文类。
usingMicrosoft.EntityFrameworkCore;usingMySQL.Data.EntityFrameworkCore.Extensions;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;usingWolfy.EfMySql.Models;namespaceWolfy.EfMySql.Data
{public classTestContext : DbContext
{public DbSet User { set; get; }protected override voidOnConfiguring(DbContextOptionsBuilder optionsBuilder)=> optionsBuilder.UseMySQL(@"Server=localhost;database=test;uid=root;pwd=123456");
}
}
添加控制器
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;usingMicrosoft.AspNetCore.Mvc;usingWolfy.EfMySql.Data;usingWolfy.EfMySql.Models;//For more information on enabling MVC for empty projects, visithttp://go.microsoft.com/fwlink/?LinkID=397860
namespaceWolfy.EfMySql.Controllers
{public classHomeController : Controller
{//GET: //
publicIActionResult Index()
{var db = newTestContext();
db.Add(new User { Name = "Hello world"});
db.SaveChanges();var lst = db.Set().ToList();returnView(lst);
}
}
}
添加路由
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;usingMicrosoft.AspNetCore.Builder;usingMicrosoft.AspNetCore.Hosting;usingMicrosoft.AspNetCore.Http;usingMicrosoft.Extensions.DependencyInjection;usingMicrosoft.Extensions.Logging;namespaceWolfy.EfMySql
{public classStartup
{//This method gets called by the runtime. Use this method to add services to the container.//For more information on how to configure your application, visithttp://go.microsoft.com/fwlink/?LinkID=398940
public voidConfigureServices(IServiceCollection services)
{
}//This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public voidConfigure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc(routes=>{
routes.MapRoute(name:"default", template: "{controller=Home}/{action=index}");
});
}
}
}
浏览Index
通过上面,可以看出,是没有添加mvc服务,引起的,修改如下:
public voidConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
视图
@*For more information on enabling MVCfor empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
@model List
- @foreach (var item inModel)
{
@item.Id @item.Name @item.Dt.ToString("yyyy-MM-dd HH:mm:ss")}刷新页面
结语
这里算是尝尝鲜。关于asp.net core的更多内容,需要参考https://www.asp.net/core