1 NetCode EF整合 代码

3  源代码 https://github.com/chxl800/EFMysqlDemo

1.1 项目文件结构

1.2 NuGet  MySql.Data.EntityFrameworkCore 8.0.18

1.3 appsettings.json   增加数据库字符串链接ConnectionStrings

{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": { "MysqlConnection": "Data Source=localhost;Database=demodb;User ID=root;Password=root;pooling=true;CharSet=utf8;port=3306;sslmode=none" }
}

1.4 DBEntities.cs 添加数据库上下文

using EFMysqlNetCodeMvc.Models;
using Microsoft.EntityFrameworkCore; namespace EFMysqlNetCodeMvc
{
public class DBEntities : DbContext
{
public DBEntities(DbContextOptions<DBEntities> options) : base(options)
{
} ////这里也可以
//string str = @"Data Source=localhost;Database=demodb;User ID=root;Password=root;pooling=true;CharSet=utf8;port=3306;sslmode=none"; //protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) =>
// optionsBuilder.UseMySQL(str); public DbSet<User> User { get; set; }
}
}

1.5 User.cs 增加数据库表实体类

1.6 Startup.cs 配置重点 有中文注释的新加的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using EFMysqlNetCodeMvc;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json.Serialization; namespace EFMysqlNetCodeMvc
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
} public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
//json格式化
services.AddMvc()
.AddJsonOptions(options =>
{
//忽略循环引用
//options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //设置序列化时key为驼峰样式,开头字母小写输出 controller调用Josn(对象)
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
//原样输出
//options.SerializerSettings.ContractResolver = new DefaultContractResolver(); //时间格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; //空值的字段不显示
//options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
}); //ef mysql 配置IOC
services.AddDbContext<DBEntities>(options => options.UseMySQL(Configuration.GetConnectionString("MySqlConnection")));
services.AddMvc();
} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
} app.UseStaticFiles(); // 跨域策略
app.UseCors(builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader().AllowCredentials()); //app.UseMvc();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}

1.7 HomeController.cs   mvc 代码用于测试

public class HomeController : Controller{

DBEntities db; 

public HomeController(DBEntities db)
{
     this.db = db;
}

      public IActionResult Test()
{ //查询
List<User> list = db.User.ToList(); //json序列化
//var userJson = JsonConvert.SerializeObject(list);
//var userList = JsonConvert.DeserializeObject<List<User>>(userJson); return Json(list);
} public IActionResult Add([FromBody] User user)
{
//新增
//User user = new User();
//user.Id = Guid.NewGuid().ToString().Replace("-", "");
//db.User.Add(user);
//db.SaveChanges(); return Json(user);
}
}

1.8 运行结果

1.9 重点代码说明

1.9.1 URL:/home/test   实体User.cs首字母大写  输出首字母变小写

            //json格式化
services.AddMvc()
.AddJsonOptions(options =>
{
//忽略循环引用
//options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //设置序列化时key为驼峰样式,开头字母小写输出 controller调用Josn(对象)
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
//原样输出
//options.SerializerSettings.ContractResolver = new DefaultContractResolver(); //时间格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//空值的字段不显示
//options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});

1.9.2 URL:/home/add   输入参数首字母小写  自动转化为实体User.cs首字母大写

public IActionResult Add([FromBody] User user)

2.0 User.cs

using System;

namespace EFMysqlNetCodeMvc.Models
{
/// <summary>
/// 账号表
/// </summary>
public class User
{
/// <summary>
///
/// </summary>
public string Id { get; set; }
/// <summary>
///
/// </summary>
public string TenantId { get; set; }
/// <summary>
///
/// </summary>
public string UserName { get; set; }
/// <summary>
///
/// </summary>
public string RealName { get; set; }
/// <summary>
///
/// </summary>
public string UserCode { get; set; }
/// <summary>
///
/// </summary>
public string Password { get; set; }
/// <summary>
///
/// </summary>
public string Salt { get; set; }
/// <summary>
///
/// </summary>
public string Mobile { get; set; }
/// <summary>
///
/// </summary>
public string Email { get; set; }
/// <summary>
///
/// </summary>
public int UserType { get; set; }
/// <summary>
///
/// </summary>
public int Status { get; set; }
/// <summary>
///
/// </summary>
public string Creator { get; set; }
/// <summary>
///
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
///
/// </summary>
public string Reviser { get; set; }
/// <summary>
///
/// </summary>
public DateTime ReviseTime { get; set; }
/// <summary>
///
/// </summary>
public DateTime? LoginTime { get; set; }
/// <summary>
///
/// </summary>
public string IP { get; set; }
/// <summary>
///
/// </summary>
public DateTime? LastLoginTime { get; set; }
/// <summary>
///
/// </summary>
public string LastIP { get; set; }
}
}

最新文章

  1. Apache Shiro 学习记录3
  2. matlab linux 安装
  3. Mobirise
  4. awk处理之案例一:awk 处理百分比的问题
  5. MAC OX 配置JDK环境变量
  6. 深入理解object C中复制对象的用法(一)
  7. BZOJ 3277 串 (广义后缀自动机)
  8. java作业—3
  9. 【css笔记(2)】如何给元素应用规则?
  10. select * 和 select 所有字段的区别
  11. iOS UIView 选择性倒角
  12. hdu6330 多校3 L 画一个cube
  13. NOIP训练测试3(2017081601)
  14. 全网最详细的Windows系统里PLSQL Developer 64bit安装之后的一些配置(图文详解)
  15. 判断小米 魅族 华为 系统 MIUI EMUI FLYME
  16. Web 服务器配置
  17. FastReport.Net使用:[26]数字格式
  18. Django-自定义分页组件
  19. sphinx-1.3.0扩展在pPHP 7.0.7版本编译不通过
  20. 【朱-刘算法】【最小树形图】hdu6141 I am your Father!

热门文章

  1. 01.轮播图之三 : collectionView 轮播
  2. 记录git 软件库
  3. Asp.net SignalR 实现服务端消息实时推送到所有Web端
  4. python学习-23 函数
  5. MongoDB部分
  6. nginx如何调用PHP(nginx+php运行原理)
  7. 导出excel的功能效果实现
  8. 2020年AI、CV、NLP顶会最全时间表
  9. HTML 禁止复制文字
  10. Asp.Net Core Linux环境下 找不到配置文件、静态文件的问题