话说刚刚配置好环境,刚刚写了几行代码,迫不及待地运行,duang! 踏进了第一个坑

看代码

        static void Main(string[] args)
{
Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
var context = new MyContext();
context.Database.Log = (log) => { Debug.WriteLine(log); };
context.Datas.Add(new Data{Name="EF6-MySql"});
(from o in context.Datas select o).ToList();
context.SaveChanges();
}

错误信息:Specified key was too long; max key length is 767 bytes

打开mysql workbench,看到该创建的表已创建,只是还没有写入数据。然后尝试不写数据直接查询,仍然同样错误。没办法,打开log,就是 debug.writeLine(log)那行,找到了出错的地方

-- MySql script
-- Created on // ::
CREATE TABLE `__MigrationHistory`(
`MigrationId` nvarchar () NOT NULL,
`ContextKey` nvarchar () NOT NULL,
`Model` longblob NOT NULL,
`ProductVersion` nvarchar () NOT NULL); ALTER TABLE `__MigrationHistory` ADD PRIMARY KEY (MigrationId, ContextKey);

最后一句是 add primary key,两个字段加起来是 (150+300)*2=900 > 767 ,所以出错了。

Bing之 ,在搜索之后,找到这篇 [C#.NET][Entity Framework] 解決 Code First @ MySql 出現 “Specified key was too long; max key length is 767 bytes   以及这篇    http://stackoverflow.com/questions/20602114/mysql-connector-6-8-2-rc-entity-framework-6-and-code-first/21120732#21120732  (必须赞叹一下stackoverflow,我遇上的问题基本都靠它了)

解决的办法很简单,就是上篇代码中的一行

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]

或者,在config文件中

<entityFramework  codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">

OK,第一个坑顺利通过。

第一篇 配置

EntityFramework+MySql 笔记2的更多相关文章

  1. EntityFramework+MySql 笔记1

    最近需要使用mysql ,而之前用惯了EF,所以就尝试EntityFramework+MySql的方案. 首先上网搜了一大通资料后,这样开始: 安装mysql,我用的版本是5.6.25 ( windo ...

  2. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  3. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  4. centos7.2下安装Mysql笔记

    centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本: yum install mariadb mariadb-server 适用于 CentOS 6.8 ...

  5. MySQL笔记(六)游标练习

    23.3.1 Trigger Syntax and Examples 意义不明的几道练习,留着备用. 感觉不好写,而且难以调试..不知道以后会不会有实际的应用场景. 环境:MySQL 笔记(三)由 t ...

  6. mysql 笔记(一)

    mysql 笔记 预留 mysql> use mysql; mysql> grant all privileges  on *.* to root@'%' identified by &q ...

  7. 【MySQL笔记】SQL语言四大类语言

     SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL.   1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句, ...

  8. Mysql 笔记二

    Mysql 笔记二 Mysql 笔记二 Table of Contents 1. 前言 2. Master Thread 工作方式 2.1. 主循环(loop) 2.2. 后台循(backgroup ...

  9. 深入浅出mysql笔记---1、mysql下载安装

    深入浅出mysql笔记---1.mysql下载安装 一.总结 一句话总结: linux下rpm安装即可 1.linux的wget命令作用? 下载文件的工具:比如wget http://cn.wordp ...

随机推荐

  1. 在Eclipse中使用JUnit4进行单元测试(高级篇)

    通过前2篇文章,您一定对JUnit有了一个基本的了解,下面我们来探讨一下JUnit4中一些高级特性. 一.高级Fixture 上一篇文章中我们介绍了两个Fixture标注,分别是@Before和@Af ...

  2. DataTable

    //遍历datatable的方法2009-09-08 10:02方法一: DataTable dt = dataSet.Tables[]; ; i < dt.Rows.Count ; i++) ...

  3. Laravel 使用多个数据库的问题。

    这几天在使用Laravel 开发一个系统.这个系统连2个数据库.一个名为blog,一个名为center. center 数据库的作用是作为用户中心.可能会有其他几个系统相连,属于公用数据库.主要是用来 ...

  4. HBase最佳实践-列族设计优化

    本文转自hbase.收藏学习下. 随着大数据的越来越普及,HBase也变得越来越流行.会用HBase现在已经变的并不困难,然而,怎么把它用的更好却并不简单.那怎么定义'用的好'呢?很简单,在保证系统稳 ...

  5. [AIR] 打开我的电脑

    import flash.filesystem.File; import flash.desktop.NativeProcess; import flash.desktop.NativeProcess ...

  6. (Array)169. Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  7. ios 逆向收录

    lldb 远程调试环境搭建:http://www.cnblogs.com/csutanyu/p/3653252.html

  8. (2016 年) githup 博客地址 : https://github.com/JMWY/MyBlog

    githup 博客地址 : https://github.com/JMWY/MyBlog

  9. 提交到github远程仓库遇到的问题

    1.could not read from remote repository 可能原因是没有将ssh 密匙添加到github,所以没有权限 解决办法: 1. ssh-keygen -C 'your@ ...

  10. LR12.53—第1课:构建Vuser脚本

    第1课:构建Vuser脚本 要生成系统上的负载,首先建立一个可以运行以模拟真实用户行为Vuser脚本.您使用VuGen创建和构建Vuser脚本. 在这一课中,你将涵盖以下主题: 介绍VuGen将 - ...