使用 EF Core CodeFirst 操作 Mysql 数据库

本文介绍如何在.NET Core项目中使用EF Core的CodeFirst方法操作Mysql数据库,通过创建一个Console Application实例,引入所需包,并定义部门、用户、标签等实体类,建立数据库上下文并进行数据库初始化。示例中还包括了微信企业号API的集成,以用户同步为例展示操作流程。
摘要由CSDN通过智能技术生成

EntityFramework(以下简称EF) 作为 .NET 广受欢迎的数据库操作中间件,支持了几乎所有你用过的关系型数据库,本文将非常基础的介绍其在 Mysql 中的使用。EF 常见的使用模式有三种:CodeFirst, ModelFirst, DBFirst;三种方式各有所特点,一般要根据实际的业务情况做选择。


在完全没有历史负担的情况下,选择 CodeFirst 更为普遍,在最新的 EntityFramework Core 中 CodeFirst 几乎是唯一的选择。本文将介绍如何使用 CodeFirst 创建和操作 Mysql 数据库,文中将以微信企业号的用户同步作为案例。IDE 使用 Visual Studio for Mac。

首先,使用 Mac 版 Visual Studio 创建一个 Console Application(.NET Core) 项目:EFCoreSample。使用 Nuget 增加 EFCore 以及 Mysql 所需要的包:

  • Microsoft.EntityFrameworkCore
  • MySql.Data.EntityFrameworkCore

    然后,由于本次例子中会使用到微信企业号的 API,我们直接引用第三方包来实现:

  • Senparc.Weixin

  • Senparc.Weixin.QY

    第三步,在解决方案中新建一个 Models 文件夹,增加部门(Party),用户(User),标签(Tag)类,以及它们之间的相互关系部门标签(PartyTag),用户部门(UserParty),用户标签(UserTag)类,均为多对多关系。类的详细定义代码如下:

    * 部门(Party) *

{% codeblock %}
public class Party
{
public Party()
{
UserPartys = new List();
PartyTags = new List();
}

/// <summary>
/// 部门Id
/// </summary>
[Key]
public int PartyId { get; set; }
/// <summary>
/// 部门名称
/// </summary>
[Required]
[StringLength(32)]
public string Name { get; set; }
/// <summary>
/// 在父部门中的次序值。order值小的排序靠前。
/// </summary>
public int Order { get; set; }
/// <summary>
/// 上级部门Id
/// </summary>
public int ParentPartyId { get; set; }
public List<UserParty> UserPartys { set; get; }
public List<PartyTag> PartyTags { set; get; }

}
{% endcodeblock %}

* 用户(User) *

{% codeblock %}
public class User
{
public User()
{
UserPartys = new List();
UserTags = new List();
}

/// <summary>
/// 员工UserID
/// </summary>
[Key]
[StringLength(32)]
public string UserId { get; set; }
/// <summary>
/// 头像url。注:小图将url最后的"/0"改成"/64"
/// </summary>
[StringLength(256)]
public string Avatar { get; set; }
/// <summary>
/// 邮箱
/// </summary>
[StringLength(256)]
public string Email { get; set; }
/// <summary>
/// 性别。gender=0表示男,=1表示女
/// &l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值