ASP.NET Core MVC项目的创建与使用EF操作MySQL数据库
一 创建项目
开发环境:VS2019, .net Core 3.1 , MySql5.7
1.打开vs2019,新建项目,可以在左侧最近使用项目模板中直接选择“ASP.NET CORE Web应用程序”,或者在右侧搜索该项目模板,选择后点击下一步。
2.在新弹出的界面中输入项目名称,以及项目的存储位置
3.然后选择“Web应用程序(模型视图控制器)”,右侧根据自己的实际需求自行选择即可。(建议取消https配置的选择)。
4.稍微等待一会儿,项目即可创建完成。项目结构如下图,Data和ViewModel是本人自己添加的,默认项目结构中不包括这两个文件夹。
二 下载相关NuGet包
1.右击“依赖项”,选择“管理NuGet程序包”,或者从工具栏的“工具”选项中选择“NuGet包管理器”,打开NuGet包管理界面。
2.搜索 EntityFrameworkCore,并且安装。不建议安装最新版本,因为要兼容MySQL,所以我们使用3.x版本的即可。
3.搜索 EntityFrameworkCore.MySql,并且安装。这个包有第三方提供,安装完成之后即可使用。
3.如果 EntityFrameworkCore 使用了5.x版本,则会在使用时抛出一下错误
使用EF连接MySql踩过的坑
三 连接MySQL
1.在appsettings.json中配置数据库连接字符串CoreConstr,注意,需要新建一个结点ConnectionStrings,并且在该节点下配置CoreConstr
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"CoreConstr": "Server=localhost;port=3306;Database=fixedassets;Uid=root;Pwd=123456;Allow User Variables=True;sslMode=None;"
}
}
2.在Models文件夹中创建dic_dic实体类
public class dic_dic
{
//声明主键
[Key]
public string dic_id { get; set; }
[Display(Name ="字典名")]
public string dic_name { get; set; }
[Display(Name = "字典码")]
public string dic_code { get; set; }
[Display(Name = "父级码")]
public string dic_parent_code { get; set; }
[Display(Name = "创建时间")]
public string dic_create_time { get; set; }
[Display(Name = "更新时间")]
public string dic_update_time { get; set; }
[Display(Name = "更新人")]
public string dic_update_user { get; set; }
[Display(Name = "级别")]
public int dic_level { get; set; }
[Display(Name = "状态")]
public int dic_state { get; set; }
[Display(Name = "序号")]
public int dic_order { get; set; }
}
3.创建Data文件夹,在Data文件夹中创建CoreDbContext类,用于上下文联系。
public class CoreDbContext:DbContext
{
public CoreDbContext(DbContextOptions<CoreDbContext> options) : base(options)
{
}
public DbSet<dic_dic> dic_dic { get; set; }
}
4.在startup.cs文件中增加依赖注入
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<CoreDbContext>(options =>
options.UseMySql(Configuration.GetConnectionString("CoreConstr")));
}
5.在控制器中创建上下文对象,然后开始访问数据库
private readonly CoreDbContext _context;
public HomeController(CoreDbContext context)
{
_context = context;
}
6。使用lambda表达式开始增删改查操作。
IQueryable<dic_dic> list = _context.dic_dic;
list = list.OrderByDescending(t => t.dic_update_time);