.netcore基于mysql的codefirst
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了.netcore基于mysql的codefirst,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5471字,纯文字阅读大概需要8分钟。
内容图文
![.netcore基于mysql的codefirst](/upload/InfoBanner/zyjiaocheng/523/a823651bc82e45248cd1148328f0d126.jpg)
/// <summary> /// /// </summary> public class CustomerServiceContext : DbContext { public CustomerServiceContext(DbContextOptions<CustomerServiceContext> options) : base(options) { } /// <summary> /// 配置 /// </summary> /// <param name="optionsBuilder"></param> protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); } public virtual DbSet<MessatgeTemplate> MessatgeTemplate { get; set; } }
第二步、创建业务服务项目,添加对应的业务处理类
/// <summary> /// 客服业务统一接口 /// </summary> public interface ICustomerServicerSerice { }
/// <summary> /// 模板业务类 /// </summary> public class MessageTemplateService : ICustomerServicerSerice { private CustomerServiceContext _CustomerServiceContext; public MessageTemplateService(CustomerServiceContext customerServiceContext) { this._CustomerServiceContext = customerServiceContext; } /// <summary> /// 创建模板 /// </summary> public void CreateMessageTemplate() { //todo create } /// <summary> /// 修改模板 /// </summary> public void ModifyMessageTemplate() { //TODO modified } /// <summary> /// 获取模板 /// </summary> /// <returns></returns> public List<object> GetMessageTemplate() { //TODO根据传入参数查询模板 return null; } /// <summary> /// 删除 /// </summary> public void DeleteMessageTemplate(Guid id) { var template = _CustomerServiceContext.MessatgeTemplate.FirstOrDefault(p => p.Id == id); if (template != null) { _CustomerServiceContext.MessatgeTemplate.Remove(template); _CustomerServiceContext.SaveChanges(); } } /// <summary> /// 批量设置是否可用 /// </summary> /// <param name="ids"></param> /// <param name="enabled"></param> public void BatchEnableTemplate(List<Guid> ids, bool enabled) { //TODO set enabled } }
第三步、创建webapi项目,并在其中建立对应的实体类,以及数据库访问类
须引入Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.Design.
1、在appsettings.json中配置数据连接
"ConnectionStrings": { "CumstomerServiceConnection": "server=localhost;port=3306;database=CustomerServiceCenter;uid=root;pwd=root23456;CharSet=utf8" }
2、修改startup.cs类的ConfigureServices注入db访问类
services.AddDbContext<CustomerServiceContext>(p => p.UseMySql(Configuration.GetConnectionString("CumstomerServiceConnection")));
3、设置该webapi项目为启动项目,在nuget程序包控制台选择第一步中创建的实体类项目依次运行如下脚本创建数据库
1)add-migration init
2) update-database
上面的两个命令中,add-migration表示添加数据迁移,其实就是将实体变更转换成sql(add-migraion后面的init只是个名称,可以自行定义),update-database是将生成的数据迁移信息更新到数据库
另外一些可能用到的命令
remove-migration ---将最近生成的迁移(没有更新到数据库的)移除掉
script-migration --生成数据库迁移相应的脚本
------------------------
命令执行成功后,就可以在数据库中找到创建好的数据库和表了
script-datatable可以生成数据库脚本语句
好了,以上就完成了codefirst的简单操作了。不过跟着第二步的业务类其实没啥关系!!!如果只是进行数据迁移确实没有service层什么事,但是业务逻辑要走通,实现crud,业务层还是必须的。
---------------------------------------------------------------------------------------------------------------------
以下就顺带写下controller中引入service,实现简单的删除业务逻辑(其它的业务逻辑---略)
在webapi创建MessageTemplateController
[Route("api/[controller]")] [ApiController] public class MessageTemplateController : ControllerBase { private MessageTemplateService _MessageTemplateService; public MessageTemplateController(MessageTemplateService messageTemplateService) { this._MessageTemplateService = messageTemplateService; } /// <summary> /// 删除 /// </summary> /// <param name="id"></param> [HttpPost("DeleteMessageTemplate")] public void DeleteMessageTemplate(Guid id) { _MessageTemplateService.DeleteMessageTemplate(id); } //TODO其他操作:查询,新增,修改等 }
修改Startup.cs类,注入服务
public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddDbContext<CustomerServiceContext>(p => p.UseMySql(Configuration.GetConnectionString("CumstomerServiceConnection"))); #region 注入业务服务 Assembly assembly = Assembly.Load("Qingy.DotNetCoreStudy.CustomerServiceService"); List<Type> types = assembly.GetTypes().Where(u => u.IsClass && !u.IsAbstract && !u.IsGenericType && u.GetInterfaces().Any(p => p == typeof(ICustomerServicerSerice)) ).ToList(); foreach (var item in types) { services.AddTransient(item); } #endregion }
综合以上,就可以将api到db的完整实现了。
.netcore基于mysql的codefirst
标签:virtual config mysql 消息 ast soft 数据 客服 services
本文系统来源:https://www.cnblogs.com/johnyong/p/12840098.html
内容总结
以上是互联网集市为您收集整理的.netcore基于mysql的codefirst全部内容,希望文章能够帮你解决.netcore基于mysql的codefirst所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。