.NET连接MySQL使用Entity Framework进行数据库连接及查询

  1. 安装MySQL Installer Community Edition for Windows(当前版本8.0.20)
    如果是在服务器上进行安装部署,可以使用PowerShell脚本完成,脚本如下:

    $msi = @("mysql-connector-net-8.0.21.msi")
    foreach($_ in $msi)
    {
      Start-Process -FilePath msiexec -ArgumentList /i, $_, /qn -Wait
    } 
  2. 通过项目NuGet包管理器,添加如下程序包:

    • MySql.Data.8.0.20:用于MySQL数据库连接(ADO.NET)和查询操作。
    • MySql.Data.EntityFramework.8.0.20:用于使用Entity Framework进行数据库连接和查询操作。
  3. 配置文件确认:

    1. entityFramework段落注册
      
        
    2. entityFramework配置
      
        
        
          
          
        
    3. system.data配置
      
        
          
        
  4. 连接字符串格式

    
      
    • connection name:数据库连接名(程序中使用)
    • server:服务器IP地址或域名
    • port:MySQL服务端口号
    • database name:数据库名
    • user name:数据库用户名
    • password:数据库密码
  5. 创建DbContext实体类
    注意:MySQL的数据库上下文实体类(继承自DbContext)需要在类前注明特性[DbConfigurationType],参考下面代码:

    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class DatabaseContext: DbContext
    {
        public DatabaseContext() : base("name=")
        {
            Database.SetInitializer(null);
        }
    
        public DbSet Customers { get; set; }
    }
    
    • 在构造函数中,通过基类参数使用上步骤填写的connection name指定数据库连接。
    • SetInitializer函数指定数据库初始化行为,这里不进行初始化(数据库表通过其它方式创建),而不是Code-First方式。
    • 通过带默认读写器的自动属性声明表变量,否则表属性无法接收。
  6. 示例表Customer

    [Table("customers")]
    public class Site
    {
        [Key]
        public int Id { get; set; }
    
        public String CustomerName { get; set; }
    }
    
    • Table特性函数内声明表名。
    • 主键通过Key特性注明。
  7. Entity Framework数据库操作示例

using (DatabaseContext db = new DatabaseContext()) //连接数据库
{
    db.Customers.RemoveRange(db.Customers.ToList()); //删除所有Customer数据(不推荐,仅用于展示)
    db.Customers.AddRange(newCustomerList); //添加新的列表newCustomerList到数据库,其类型应为IList
    db.SaveChanges(); //数据提交
}

你可能感兴趣的:(.NET连接MySQL使用Entity Framework进行数据库连接及查询)