ef+mssql详细是许多.net程序员的标配。作为一个程序员当然不能只会mssql这一个数据库,今天简单聊聊ef+mysql。推荐新人阅读。

  1】首先创建一个mvc项目,如图:

创建完毕之后再nuget中分别引用MySql.Data、MySql.Data.Entity、EntityFramework(注意MySql.Data、MySql.Data.Entity版本必须一致)

2】创建数据库连接

1)在model文件夹下创建一个UserTs.cs

public class UserTs
{
[Key]
// id
public string id { get; set; }
// 姓名
public string cusName { get; set; }
}

  

2)然后创建MYDBContext.

//数据库上下文
public class MYDBContext : DbContext
{
public MYDBContext()
: base("name=conncodefirst")
{
} public DbSet<UserTs> Customer { get; set; }
}

3)在web.config中添加以下代运行代码,便可在数据库中看到生成的表

<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<connectionStrings>
<add name="conncodefirst" connectionString="server=localhost;port=3306;uid=root;pwd=Ee123;database=MYsqlTs" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>

三个常用命令

第一次创建数据库,我们执行如下三条命令。
1.Enable-Migrations -EnableAutomaticMigrations
2.Add-Migration InitialCreate
3.Update-Database -Verbose

有一个报错

在生成的配置类中加上这样一句话

this.SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());

还有一个报错

EF6 MySQL错误之“Specified key was too long; max key length is 767 bytes”

 

由于 MySQL Innodb 引擎表索引字段长度的限制为 767 字节,因此对于多字节字符集的大字段(或者多字段组合索引),创建索引会出现上面的错误。

以 utf8mb4 字符集 字符串类型字段为例:utf8mb4 是 4 字节字符集,则默认支持的索引字段最大长度是: 767 字节 / 4 字节每字符 = 191 字符,因此在 varchar(255) 或 char(255) 类型字段上创建索引会失败。

解决方法:

1.使用NuGet引用MySQL.Data.Entities。

2.在你的DbContext里添加代码:

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
public class MyContext : DbContext
{
public MyContext() : this() { } static MyContext ()
{
DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
}
}

问题解决

最新文章

  1. 单片机DA转换实现正弦波
  2. linux kernel input 子系统分析
  3. 128. Longest Consecutive Sequence(leetcode)
  4. 如何解决requireJs的模块加载超时
  5. MySQL双机热备份
  6. hdu-5495 LCS(置换)
  7. gerrit docker运行失败 chown: /var/gerrit/review_site: Permission denied 【已解决】
  8. Linux环境下搭建Android开发环境
  9. 导入时如何定制spring-boot依赖项的版本
  10. 安卓使用spinner控件和pull解析实现全国省市县的三级联动
  11. python成长之路13
  12. jQuery UI dialog 參数说明
  13. 关于NIOS ii烧写的几种方式
  14. Swift 设置某个对象的normal 属性找不到normal 解决方案
  15. QCon2019全球软件开发大会广州站即将来袭
  16. 在Azure DevOps Server (TFS 2019) 流水线传递参数
  17. Java编程思想 学习笔记7
  18. JS中对象与数组(大括号{}与中括号[])
  19. 跟我学Spring Boot(三)Spring Boot 的web开发
  20. 敲代码非常难之logstash之file input插件实现分析

热门文章

  1. option跳转页面并选中当前值
  2. golang rabbitmq实践 (一 rabbitmq配置)
  3. UVA 12299 线段树 ( 单点跟新 , 区间查询)
  4. PHP 发邮件《转》
  5. 关于SSD和YOLO对小目标的思考
  6. SQL简介及分类
  7. sql中left join、right join、inner join的区别
  8. sqli-lab(14)
  9. 网络协议之TCP/IP协议
  10. 使用resultMap定义查询结果集,实现关联查询